Compensación de movimiento

La compensación de movimiento es una técnica utilizada en la codificación de vídeo, cuyo principal objetivo consiste en eliminar la redundancia temporal existente entre las imágenes que componen una secuencia, con el fin de aumentar la compresión.

El proceso se basa en un algoritmo que examina la sucesión de fotogramas consecutivos, generalmente muy similares entre sí, para analizar y estimar el movimiento entre los dos. Si el sistema detecta que una región de la imagen ya ha aparecido anteriormente, codifica la posición que ocupa en el fotograma actual en lugar de volver a codificar toda la región. De este modo, la predicción de la imagen actual vendrá dada por la compensación de movimiento basándose en las imágenes anteriores.

Codificador basado en detección de movimiento

Hay varias técnicas para eliminar la redundancia temporal en una secuencia de imágenes, pero la mayoría actúan siguiendo el siguiente esquema:

  1. Cada imagen se divide en bloques, generalmente de 8 x 8 o de 16 x 16 píxeles.
  2. Por cada bloque de la imagen, se genera una predicción, buscando donde se encontraban estos bloques en la imagen anterior (compensación de movimiento).
  3. Se resta la predicción al bloque de la imagen actual.
  4. Se aplica una DCT a la diferencia entre la predicción y el bloque actual.
  5. Se cuantifican los coeficientes DCT, eliminando las componentes de altas frecuencias y se codifican en un código, generalmente no-uniforme.
  6. En caso de que no hubiera fotograma previo o hubiera mucha diferencia, se codifica el bloque de nuevo en lugar de la diferencia de la predicción.

Normalmente los bloques se agrupan en macrobloques para reducir el coste computacional: bloques más grandes significa que hay menos bloques a prever.

Realmente la predicción (compensación de movimiento) se realiza sobre los macrobloques: se calcula el vector de movimiento de cada elemento dentro del macrobloque. Así, para cada fotograma se guardan:

  • El resultado de aplicar la DCT y la cuantificación a cada bloque diferencia.
  • Los vectores de movimiento de los elementos de dentro los macrobloques.
  • Se aplica un filtro a la DCT para eliminar las componentes de alta frecuencia y aumentar la compresión.
Other Languages