top of page

Codecs

Antes da codificação dos dados, as imagens pré-processadas apresentam um elevado débito binário, pelo que uso de algoritmos de compressão eficientes é inevitável.

​

Consequentemente, as técnicas transversais a todos os codecs de vídeo, como a exploração de redundância temporal, redundância espacial, redundância estatística e irrelevância perceptiva do conteúdo pré-processado são aplicadas pelo que a escolha do codec é crucial.

​

Antes de avançar para os codecs mais atuais e usados em sistemas RV como o Advanced Video Coding (H.264/AVC) e o seu sucessor High Efficiency Video Coding (H.265/HEVC), importa descrever o funcionamento de um codec básico de vídeo. Compreende três unidades funcionais:

​

  • Modelo temporal - explora a redundância temporal entre a trama atual e as tramas vizinhas (Inter prediction). Constrói uma predição da trama atual com base nas tramas temporalmente vizinhas, sendo os outputs o erro de predição/resíduo (diferença entre trama de predição e a trama atual) e vetores de movimento. O processo de predição e compensação é feito ao nível do bloco da trama atual. O processo de procura do bloco que se assemelha mais ao bloco da trama atual na trama de referência é chamado estimação de movimento. Este processo é melhorado usando deslocamento mais precisos de ½ ou ¼ de pixel. O resíduo resultante é descodificado dentro do codificador e adicionado de forma a reconstituir a trama de referência para poder ser usado para predição de compensação de movimento de tramas futuras na sequência de vídeo;

 

  • Modelo espacial - explora a redundância e irrelevância espacial das imagens. Explora a redundância espacial entre os pixels dentro da trama atual (Intra Prediction). Consiste em três componentes: transformada, quantificação, filtro anti-bloco (De-blocking Filter) e rearranjo de coeficientes. Na transformada, o resíduo é convertido em coeficientes Discrete Cosine Transform (DCT). Na quantificação, o objetivo é representar o output da transformada com um menor número de bits por amostra em relação ao input. O passo de quantização é o parâmetro que quantifica a redução do número de bits que representam as amostras, sendo ajustado dinamicamente ao canal de transmissão. O filtro anti-bloco serve para reduzir o efeito de bloco e evitar propagação de ruído. O rearranjo dos coeficientes é o processo responsável pelo agrupamento dos coeficientes DCT quantificados, representando os valores nulos eficientemente. Este agrupamento dos coeficientes é feito através de um scan em zig-zag;

 

  • Modelo entrópico - explora a redundância estatística das imagens. Os coeficientes quantificados re-arranjados, vetores de movimento, cabeçalhos, marcadores e informações suplementares são mapeados em palavras de código de comprimento variável dependendo das suas probabilidades de ocorrência. Pelo que símbolos mais prováveis são mapeados em palavras de código mais curtas. O Variable Length Coding (VLC) é  o codificador entrópico base.

​

É importante definir o conceito de Group of Pictures (GOP), que consiste numa sequência de tramas sucessivas numa stream  de vídeo codificado. Uma sequência de vídeo completa é usualmente representada por uma repetição periódica de GOP’s. A estrutura de um GOP é composta por três tipos de tramas:

​

  • Tramas I (Intra) - codificadas independentemente das tramas presentes no respetivo GOP e permitem acesso aleatório;

 

  • Tramas P (Predicted) - codificadas a partir de única trama de referência do passado;

 

  • Tramas B (Bi-Predictive) - codificadas a partir da combinação entre duas tramas de referência, tipicamente do passado e do futuro. O atraso e a complexidade de predição são mais críticas.

​

 

​

​

​

​

​

​

​

​

​

​

​

​

​

No H.264/AVC ou H.264/MPEG-4 Part 10:

​

  • Predição Intra - é feita ao nível de macroblocos (16x16 amostras), podendo ser divididos em blocos de tamanho variável (8x8 e 4x4), dependendo do tipo de amostras (crominância ou luminância). O resíduo é codificado e transmitido para o descodificador como na predição Inter;

​

  • Predição Inter - é feita ao nível de macroblocos, podendo estes ser divididos  em blocos 16x8, 8x16, 8x8, 8x4, 4x8 e 4x4. Quanto menor o bloco, menor o resíduo. Contudo, isto implica o aumento do número de vetores de movimento, pelo que o uso de vetores com precisão de sub-pixel até ¼ de pixel se justifica. As tramas P podem-se apoiar numa trama do passado ou do futuro, enquanto que as tramas B se podem apoiar em duas do passado e duas do futuro. A predição pode ser feita com base em tramas de outros GOP’s;

​

  • Transformada - os blocos de resíduo são transformados e quantificados com uma transformada de 8x8 e 4x4 inteiros. É usada Integer DCT (IDCT) no codificador. Usa uma estrutura de transformada hierárquica de dois níveis,  sendo disponibilizadas três tipos de transformadas: 4x4 Integer Transform, 4x4 Hadamard Transform e 2x2 Hadamard Transform para explorar a redundância espacial dos resíduos das predição;

​

  • Quantificação – novidade da quantificação em cascata que privilegia as tramas mais usadas para predição com um menor passo de quantificação;

​

  • Filtro anti-bloco – permite filtragem in-loop (na codificação) e filtragem post-loop (imediatamente antes do display do conteúdo);

​

  • Codificação entrópica – usam-se dois tipos de codificação entrópica. O primeiro é uma combinação do Universal Variable Length Coding (UVLC) e o CAVLC. O segundo é o CABAC.

​

No H.265/HEVC ou H.265/MPEG-H Part 2, para a mesma qualidade, consegue reduzir o débito binário para metade do praticado pelo seu antecessor devido sobretudo à substituição do macrobloco pela Coding Tree Unit (CTU), cujo tamanho varia entre 8x8 e 64x64. Esta capacidade de divisão de blocos em 64x64 blocos mais pequenos, possibilita uma melhor predição temporal e espacial. É agora mais fácil identificar repetições e eliminar redundâncias. Contudo, exige uma maior complexidade e atraso no processamento de sinal para compressão de vídeo, tendo um impacto significativamente menor na complexidade de computação necessária para a descodificação. Por exemplo, na predição inter, é usado um algoritmo avançado para criação dos vetores do movimento designado por Advanced Motion Vector Prediction (AMVP). Este codec está pensado para processamento paralelo dos dados.

​

Existe uma extensão mais recente ao H.265/HEVC, o H.265/MV-HEVC, que foi criada a pensar nas aplicações que utilizam vídeos multiview, de que são exemplo as aplicações de RV. É um standard de codificação de video estereoscópicos para compressão eficiente de sequências de vídeo capturadas simultaneamente  allows for the efficient encoding of video sequences captured simultaneously de vários ângulos e posições num único stream de vídeo. É compatível com descodificação de imagens monoescópicas. Explora a redundância inter-view juntamente com a redundância temporal no processo de predição inter. Para se perceber este conceito, no caso de se usarem múltiplas câmeras para a captação de vídeo, existe muita redundância quando se sobrepõem e alinham as imagens de cada  câmara, sendo que o software que controla esta combinação de vídeos é mais complexo. Esta extensão usa todas as ferramentas de codificação 2D do HEVC , com alterações feitas apenas na sintaxe dos níveis mais altos (nos cabeçalhos dos slices, pictures e GOP’s).

Exemplo de estimação de movimento com predição inter-view.

Diagrama de blocos de um codificador básico de vídeo.

Relativamente ao conteúdo de áudio, apesar de os codecs mais usados atualmente serem o MP3, WAV e  AAC, a experiência imersiva espacial de áudio é conseguida através do codec MPEG-H 3D Audio. A percepção tridimensional de áudio é a meta principal deste protocolo. Relativamente aos conhecidos channel signals, apesar de as configurações de altifalante 2.0 e 5.1 serem as mais comuns, com este novo protocolo, as configurações 7.1, 9.1 e 22.2 são também disponibilizadas. Algoritmos de downmixing/upmixing adequados são essenciais para se preservar a qualidade do áudio. O perfil principal do MPEG-H 3D Audio disponibiliza cinco níveis, cujo número de altifalantes de núcleo varia entre 8 e 128 e, de 8 a 64, para o número de canais de altifalantes.

bottom of page