Articulo de referencia

Marco intermedio

Un fotograma intermedio es un fotograma en una secuencia de compresión de vídeo que se expresa en términos de uno o más fotogramas vecinos. El prefijo "inter" hace referencia al...

Un fotograma intermedio es un fotograma en una secuencia de compresión de vídeo que se expresa en términos de uno o más fotogramas vecinos. El prefijo "inter" hace referencia al uso de la predicción de fotogramas intermedios . Esta técnica aprovecha la redundancia temporal entre fotogramas vecinos, lo que permite mayores tasas de compresión.

Predicción entre fotogramas

Un fotograma codificado se divide en bloques conocidos como macrobloques . Después, en lugar de codificar directamente los valores de píxeles sin procesar para cada bloque, el codificador intentará encontrar un bloque similar al que está codificando en un fotograma previamente codificado, denominado fotograma de referencia . Este proceso se realiza mediante un algoritmo de coincidencia de bloques . Si el codificador tiene éxito en su búsqueda, el bloque puede codificarse mediante un vector, conocido como vector de movimiento , que apunta a la posición del bloque coincidente en el fotograma de referencia . El proceso de determinación del vector de movimiento se denomina estimación de movimiento .

En la mayoría de los casos, el codificador tendrá éxito, pero es probable que el bloque encontrado no coincida exactamente con el bloque que está codificando. Por ello, el codificador calculará las diferencias entre ambos. Estos valores residuales se conocen como error de predicción y deben transformarse y enviarse al decodificador.

En resumen, si el codificador logra encontrar un bloque coincidente en un fotograma de referencia, obtendrá un vector de movimiento que apunta al bloque coincidente y un error de predicción. Utilizando ambos elementos, el decodificador podrá recuperar los píxeles originales del bloque. La siguiente imagen muestra gráficamente todo el proceso:

Proceso de predicción entre fotogramas. En este caso, se ha producido un cambio de iluminación entre el bloque del fotograma de referencia y el bloque que se está codificando: esta diferencia constituirá el error de predicción para dicho bloque.

Este tipo de predicción tiene algunas ventajas y desventajas:

  • Si todo va bien, el algoritmo podrá encontrar un bloque coincidente con poco error de predicción, de modo que, una vez transformado, el tamaño total del vector de movimiento más el error de predicción sea menor que el tamaño de una codificación sin procesar.
  • Si el algoritmo de coincidencia de bloques no encuentra una coincidencia adecuada, el error de predicción será considerable. Por lo tanto, el tamaño total del vector de movimiento más el error de predicción será mayor que la codificación original. En este caso, el codificador haría una excepción y enviaría una codificación original para ese bloque específico.
  • Si el bloque correspondiente en el fotograma de referencia también se ha codificado mediante predicción entre fotogramas, los errores cometidos durante su codificación se propagarán al siguiente bloque. Si cada fotograma se codificara con esta técnica, sería imposible que un decodificador se sincronizara con el flujo de vídeo, ya que sería imposible obtener las imágenes de referencia.

Debido a estos inconvenientes, para que esta técnica sea eficiente y útil, es necesario utilizar un marco de referencia fiable y periódico en el tiempo. Dicho marco de referencia se conoce como marco intra , el cual está codificado de forma estrictamente intra, por lo que siempre puede decodificarse sin información adicional.

En la mayoría de los diseños, existen dos tipos de fotogramas intermedios: fotogramas P y fotogramas B. Estos dos tipos de fotogramas, junto con los fotogramas I (imágenes codificadas intra), suelen agruparse en un GOP (Grupo de Imágenes). El fotograma I no requiere información adicional para su decodificación y puede utilizarse como referencia fiable. Esta estructura también permite lograr una periodicidad en los fotogramas I, necesaria para la sincronización del decodificador.

Tipos de marco

La diferencia entre los marcos P y los marcos B radica en el marco de referencia que se les permite utilizar.

Marco P

El término P-frame se utiliza para definir las imágenes de predicción hacia adelante. La predicción se realiza a partir de una imagen anterior, principalmente un I-frame o un P-frame, lo que requiere menos datos de codificación (aproximadamente un 50 % en comparación con el tamaño de un I-frame).

La cantidad de datos necesarios para realizar esta predicción consiste en vectores de movimiento y coeficientes de transformación que describen la corrección de la predicción. Implica el uso de compensación de movimiento .

Cuadro B

El término "fotograma B" se refiere a las imágenes predichas bidireccionalmente. Este método de predicción suele ocupar menos datos de codificación que los fotogramas P (aproximadamente un 25 % en comparación con el tamaño de un fotograma I), ya que la predicción se realiza a partir de un fotograma anterior, uno posterior o ambos. (Los fotogramas B también pueden ser menos eficientes que los fotogramas P en ciertos casos, [ 1 ] por ejemplo, en la codificación sin pérdidas).

Al igual que los fotogramas P, los fotogramas B se expresan como vectores de movimiento y coeficientes de transformación. Para evitar un error de propagación creciente, los fotogramas B no se utilizan como referencia para realizar predicciones posteriores en la mayoría de los estándares de codificación. Sin embargo, en métodos de codificación más recientes (como H.264/MPEG-4 AVC y HEVC ), los fotogramas B pueden utilizarse como referencia para un mejor aprovechamiento de la redundancia temporal. [ 2 ] [ 3 ]

Estructura típica de grupo de imágenes (GOP).

Ilustración de las dependencias del esquema de grupo de imágenes IBBPBB... El tiempo transcurre de izquierda a derecha.

La estructura típica de un grupo de imágenes (GOP) es IBBPBBP... El fotograma I se utiliza para predecir el primer fotograma P, y estos dos fotogramas también se utilizan para predecir el primer y el segundo fotograma B. El segundo fotograma P también se predice utilizando el primer fotograma I. Ambos fotogramas P se combinan para predecir el tercer y el cuarto fotograma B. El esquema se muestra en la siguiente imagen:

Esta estructura plantea un problema porque se necesita el cuarto fotograma (fotograma P) para predecir el segundo y el tercero (fotogramas B). Por lo tanto, debemos transmitir el fotograma P antes que los fotogramas B, lo que retrasará la transmisión (será necesario conservar el fotograma P). Esta estructura tiene puntos fuertes:

  • Minimiza el problema de las posibles zonas sin cubrir.
  • Los fotogramas P y los fotogramas B necesitan menos datos que los fotogramas I, por lo que se transmite menos información.

Pero tiene puntos débiles:

  • Esto aumenta la complejidad del decodificador, lo que puede implicar la necesidad de más memoria para reorganizar los fotogramas y un poco más de potencia de procesamiento.
  • Los fotogramas B pueden introducir una dependencia de decodificación que inevitablemente aumenta la latencia de decodificación.

Mejoras en la predicción entre fotogramas de H.264

Las mejoras más importantes de la técnica H.264 con respecto a los estándares anteriores (especialmente MPEG-2 ) son:

  • Partición de bloques más flexible
  • Resolución de hasta ¼ de píxel con compensación de movimiento.
  • Múltiples referencias
  • Macrobloque directo/salto mejorado

Partición de bloques más flexible

Partición de bloques de luminancia de 16×16 ( MPEG-2 ), 16×8, 8×16 y 8×8. El último caso permite la división del bloque en nuevos bloques de 4×8, 8×4 o 4×4.

El fotograma que se va a codificar se divide en bloques de igual tamaño, como se muestra en la imagen superior. Cada predicción de bloque tendrá el mismo tamaño que las imágenes de referencia, con un pequeño desplazamiento.

Resolución de hasta ¼ de píxel con compensación de movimiento.

Los píxeles en la posición de medio píxel se obtienen aplicando un filtro de longitud 6.

H=[1 -5 20 20 -5 1], es decir medio píxel "b"=A - 5B + 20C + 20D - 5E + F

Los píxeles en la posición de un cuarto de píxel se obtienen mediante interpolación bilineal .

Mientras que MPEG-2 permitía una resolución de ½ píxel, Interframe permite hasta ¼ de píxel. Esto significa que es posible buscar un bloque en el fotograma para codificarlo en otros fotogramas de referencia, o bien interpolar píxeles inexistentes para encontrar bloques aún más adecuados al bloque actual. Si el vector de movimiento es un número entero de unidades de muestras, es posible encontrar en las imágenes de referencia el bloque compensado en movimiento. Si el vector de movimiento no es un número entero, la predicción se obtendrá a partir de píxeles interpolados mediante un filtro interpolador en las direcciones horizontal y vertical.

Múltiples referencias

La estimación de movimiento mediante múltiples referencias permite encontrar la mejor referencia en dos posibles búferes (Lista 0 para imágenes pasadas, Lista 1 para imágenes futuras) que contienen hasta 16 fotogramas en total. [ 4 ] [ 5 ] La predicción de bloques se realiza mediante una suma ponderada de bloques de la imagen de referencia. Esto permite mejorar la calidad de la imagen en escenas con cambios de plano, zoom o cuando se revelan nuevos objetos.

Macrobloque directo/salto mejorado

Los modos Skip y Direct se utilizan con mucha frecuencia, especialmente con fotogramas B. Reducen significativamente la cantidad de bits a codificar. Estos modos se emplean cuando se codifica un bloque sin enviar errores residuales ni vectores de movimiento. El codificador solo registrará que se trata de un macrobloque Skip. El decodificador deducirá el vector de movimiento del bloque codificado en modo Direct/Skip a partir de otros bloques ya decodificados.

Hay dos maneras de deducir el movimiento:

Temporal
Utiliza el vector de movimiento del bloque de la Lista 1, ubicado en la misma posición, para deducir el vector de movimiento. El bloque de la Lista 1 utiliza un bloque de la Lista 0 como referencia.
Espacial
Predice el movimiento de los macrobloques vecinos en el mismo fotograma. Un posible criterio sería copiar el vector de movimiento de un bloque vecino. Estos modos se utilizan en zonas uniformes de la imagen donde el movimiento es mínimo.

En la figura anterior, los bloques rosas son bloques codificados para el modo Directo/Salto. Como podemos observar, se utilizan con mucha frecuencia, principalmente en los fotogramas B.

Información adicional

Aunque el uso del término "fotograma" es común en el lenguaje informal, en muchos casos (como en los estándares internacionales para la codificación de vídeo de MPEG y VCEG ) se aplica un concepto más general utilizando la palabra "imagen" en lugar de "fotograma", donde una imagen puede ser un fotograma completo o un único campo entrelazado .

Los códecs de vídeo como MPEG-2 , H.264 u Ogg Theora reducen la cantidad de datos en una transmisión al intercalar uno o más fotogramas intermedios entre fotogramas clave. Estos fotogramas generalmente se pueden codificar con una tasa de bits menor que la necesaria para los fotogramas clave, ya que gran parte de la imagen suele ser similar, por lo que solo es necesario codificar las partes que cambian.

Véase también

Referencias

  1. "Foro de Doom9 - Ver publicación individual - Pregunta sobre x264 sin pérdidas" .
  2. "Compresión de vídeo mediante fotogramas B jerárquicos o pirámide B" . Archivado del original el 15 de junio de 2017. Consultado el 24 de marzo de 2019 .
  3. "Configuración X264 - MeWiki" . mewiki.project357.com . Archivado del original el 18 de noviembre de 2014. Consultado el 12 de enero de 2022 .
  4. "Una pregunta de principiante sobre el fotograma B en AVC - Foro de Doom9" .
  5. "Salida de estadísticas X264, la parte "ref B L1" . Archivado del original el 22/11/2014.
  • Software H.264: http://iphome.hhi.de/suehring/tml/download/
  • T. Wiegand, G. J. Sullivan, G. Bjøntegaard, A. Luthra: Descripción general del estándar de codificación de vídeo H.264/AVC . IEEE Transactions on Circuits and Systems for Video Technology, vol. 13, n.º 7, julio de 2003.
Obtenido de " https://en.wikipedia.org/w/index.php?title=Inter_frame&oldid=1360017720 "