Técnicas y características esenciales de MPEG-4 Parte 10 (H.264) — compresión y escalabilidad

Técnicas que aparecen en MPEG-4 Parte 10

  • Subdivisión de MB (macrobloque)
  • Múltiples referencias para cuadros P
  • Ordenación de MB flexible
  • Codificación adaptativa al campo/cuadro
  • Agrupamiento de slices
  • Ordenación de slices arbitraria
  • Predicción intra
  • 1/4 píxel ME/MC
  • Uso de cuadros B como referencia
  • Cuadros B generalizados
  • Transformación entera
  • Codificación adaptativa al contexto (CAVLC, CABAC)

Problema en la subdivisión de macrobloque (imagen chico)

Hay dos problemas en el MB marcado:

  1. Para poder subdividir el bloque 8×8 dentro del MB se debería haber hecho primero una subdivisión en 4 bloques de 8×8.
  2. La subdivisión en sí no existe como tal; se debería haber hecho según uno de los siguientes casos: dibujar cuatro tipos.

FMO — descripción de tipos

FMO (Flexible Macroblock Ordering) define diferentes maneras de agrupar y ordenar macrobloques. Descripción de tipos:

TIPO 0

Utiliza tiras de macrobloques que se repiten hasta llenar toda la imagen. Para reconstruir el MBMap sólo se debe conocer la longitud de las tiras.

TIPO 1

Utiliza una función matemática, conocida por el codificador y el decodificador, para repartir los macrobloques. La distribución de la figura, en la que los macrobloques se distribuyen en forma de tablero de ajedrez, es muy utilizada.

TIPO 2

Se utiliza para marcar áreas rectangulares conocidas como áreas de interés. En este caso se guardan en los MBMaps las coordenadas superior izquierda e inferior derecha de los rectángulos.

TIPO 3–5

Son tipos dinámicos que dejan crecer o encoger de forma cíclica los grupos de slices de las diferentes imágenes consecutivas. Así pues, sólo se tiene que enviar la dirección, la tasa de crecimiento y la posición en el ciclo para tener bien definidos los grupos de slices.

Explicación del proceso de estimación de movimiento a precisión de 1/4 píxel

El algoritmo de estimación de movimiento presentado es un algoritmo de búsqueda a tres pasos:

Primer paso

Búsqueda del bloque más parecido al MB buscado en las posiciones de píxel entero (círculos vacíos). La posición de menor error se indica con un círculo relleno.

Segundo paso

Interpolación de las posiciones intermedias del bloque encontrado y sus filas y columnas envolventes mediante un filtro FIR de orden 6 tipo Wiener. Se busca en las 8 posiciones alrededor de la posición encontrada anteriormente (cuadrados vacíos); la mejor posición se indica mediante un cuadrado relleno. Es el bloque encontrado a precisión de 1/2 píxel.

Tercer paso

Interpolación bilineal de la zona de acierto y su alrededor y búsqueda en las 8 posiciones alrededor de la posición encontrada anteriormente (triángulos vacíos); la mejor posición se indica mediante un triángulo relleno. Es el bloque encontrado a precisión de 1/4 píxel.

Diferencia entre Parte 2 y Parte 10 de MPEG-4 y codificación en Parte 2

En vez de centrarse en maximizar la compresión, Parte 2 se centró en una interpretación semántica del contenido de la imagen, segmentándolo en objetos con significado. En MPEG-4 Parte 2 se codifican los objetos de manera especial, separando la codificación de contorno, textura y movimiento.

Objeto con el que se ahorra información en determinadas escenas: ¿cómo se llaman y cómo se manejan?

Este tipo de objeto se llama slice. Un slice tiene la particularidad de ser enviado una sola vez porque sirve, por ejemplo, como un fondo estático al que se componen diferentes objetos.

¿Qué es la escalabilidad?

  • Se puede quitar parte del flujo binario de manera que el flujo restante forma un flujo válido que representa el contenido con menor calidad que el flujo completo original.
  • Los flujos binarios escalables se llaman: multi‑layer bit streams.
  • Los no escalables se denominan: single‑layer bit streams.

Tipos de escalabilidad

  • Escalabilidad temporal: transmite menos cuadros de lo normal (peor resolución del movimiento).
  • Escalabilidad espacial: extraer una imagen más pequeña.
  • Escalabilidad de calidad (PSNR): extraer una imagen del mismo tamaño con menor calidad.

Ventajas del vídeo escalable

  • Multidifusión (multicast): envío de la información a múltiples destinos simultáneamente.
  • Clientes heterogéneos:
    • Se ofrece simultáneamente el contenido en diferente tamaño, tasa binaria y tasa de cuadros.
    • Una única codificación en resolución y tasa.
    • Menor resolución o calidad descartando datos.
    • Clientes con recursos restringidos (resolución de pantalla, batería) solo necesitan decodificar parte del flujo.
  • Protección de error diferente según la importancia de los datos.

Predicción intra

  • Predicción de un MB de una imagen basada en los píxeles adyacentes al MB que ya fueron transmitidos.
  • Objetivo: codificar la diferencia entre la predicción y el contenido real; esto implica la reducción de redundancia espacial.
  • Modos de predicción: 4 modos para bloques de croma y MB 16×16, y 9 modos para bloques de tamaño 4×4 u 8×8.
  • Funcionamiento:
    • Calcular el SAD entre el bloque actual y la predicción para los modos disponibles.
    • Escoger el modo con menor SAD.

Múltiples referencias

P slices

  • Se puede utilizar más de una imagen de referencia para predecir los MBs de un slice.
  • Las imágenes de referencia se guardan en una lista llamada lista 0.
  • Pueden ser imágenes pasadas o futuras (pero ya transmitidas).

B slices

  • Se puede utilizar una o dos imágenes de referencia para cada MB y sus particiones pueden ser predichas de dos listas: lista 0 y lista 1, ponderando los valores.
  • Pueden ser imágenes pasadas o futuras (pero ya transmitidas).
  • Opciones: 2 pasadas, 2 futuras, o 1 pasada + 1 futura.

Filtro antibloques

  • In‑loop deblocking filter = filtrado dentro del bucle de predicción.
  • Mejora la calidad objetiva y subjetiva de la imagen decodificada.
  • Significativamente superior al filtrado post‑codificación.
  • El filtrado afecta a los bordes de los bloques 4×4.
  • Filtrado adaptativo al contenido – elimina efectos de bloque sin desenfocar el contenido visual.
  • Filtros especialmente fuertes para MB con características muy planas, que casi eliminan efectos de “tiling” (azulejos).

Diferencias en codificación: MPEG-2 vs MPEG-4/AVC

En MPEG-2 se utiliza la codificación de longitud variable (VLC) mediante tablas fijas. En MPEG-4/AVC existen dos posibilidades de codificación adaptativas al contenido de las imágenes:

CAVLC (codificación de longitud variable adaptativa al contexto)

  • Cambia la tabla de codificación para adaptarse al contenido localizado de la imagen.
  • Mejora de aproximadamente 25% sobre codificación no adaptativa (por ejemplo, Huffman).

CABAC (codificación aritmética binaria adaptativa al contexto)

  • Contempla la distribución de probabilidad de la imagen entera.
  • Hasta 30% de ganancia en compresión.
  • Un ~10% de mejora sobre CAVLC, pero más costoso que CAVLC.
  • Reducción de la complejidad evitando multiplicaciones: sólo shifts y table look‑ups.