Articulo de referencia

Compensación de movimiento

Visualización de la compensación de movimiento de los bloques MPEG. Los bloques que se movieron de un fotograma al siguiente se muestran como flechas blancas, lo que permite vis...

Visualización de la compensación de movimiento de los bloques MPEG. Los bloques que se movieron de un fotograma al siguiente se muestran como flechas blancas, lo que permite visualizar claramente los movimientos de las diferentes plataformas y del personaje.

La compensación de movimiento en informática es una técnica algorítmica que se utiliza para predecir un fotograma de un vídeo a partir de los fotogramas anteriores y/o futuros, teniendo en cuenta el movimiento de la cámara o de los objetos. Se emplea en la codificación de datos de vídeo para su compresión , por ejemplo, en la generación de archivos MPEG-2 . La compensación de movimiento describe una imagen en términos de la transformación de una imagen de referencia a la imagen actual. La imagen de referencia puede ser anterior en el tiempo o incluso futura. Cuando las imágenes se pueden sintetizar con precisión a partir de imágenes previamente transmitidas o almacenadas, se puede mejorar la eficiencia de la compresión.

La compensación de movimiento es una de las dos técnicas clave de compresión de vídeo utilizadas en los estándares de codificación de vídeo , junto con la transformada discreta del coseno (DCT). La mayoría de los estándares de codificación de vídeo, como los formatos H.26x y MPEG , suelen utilizar la codificación híbrida DCT con compensación de movimiento, [ 1 ] [ 2 ] conocida como compensación de movimiento por bloques (BMC) o DCT con compensación de movimiento (MC DCT).

Funcionalidad

La compensación de movimiento aprovecha el hecho de que, a menudo, en muchos fotogramas de una película, la única diferencia entre un fotograma y otro es el movimiento de la cámara o de un objeto dentro del fotograma. En el caso de un archivo de vídeo, esto significa que gran parte de la información que representa un fotograma será la misma que la utilizada en el siguiente.

Mediante la compensación de movimiento, una secuencia de vídeo contendrá algunos fotogramas completos (de referencia); entonces, la única información almacenada para los fotogramas intermedios será la necesaria para transformar el fotograma anterior en el siguiente.

Ejemplo ilustrado

A continuación se presenta una explicación ilustrada simplificada de cómo funciona la compensación de movimiento. Se capturaron dos fotogramas consecutivos de la película Elephants Dream . Como se puede observar en las imágenes, la diferencia inferior (con compensación de movimiento) entre los dos fotogramas contiene significativamente menos detalles que las imágenes anteriores, por lo que se comprime mucho mejor que el resto.

MPEG

En MPEG , las imágenes se predicen a partir de fotogramas anteriores ( fotogramas P ) o bidireccionalmente a partir de fotogramas anteriores y futuros ( fotogramas B ). Los fotogramas B son más complejos porque la secuencia de imágenes debe transmitirse y almacenarse fuera de orden para que el fotograma futuro esté disponible para generar los fotogramas B. [ 3 ]

Tras predecir los fotogramas mediante la compensación de movimiento, el codificador calcula el residuo, que luego se comprime y se transmite.

Compensación de movimiento global

En la compensación de movimiento global , el modelo de movimiento básicamente refleja movimientos de la cámara tales como:

  • Dolly: movimiento de la cámara hacia adelante o hacia atrás.
  • Seguimiento: mover la cámara hacia la izquierda o hacia la derecha.
  • Boom: mover la cámara hacia arriba o hacia abajo.
  • Panorámica: rotación de la cámara alrededor de su eje Y, moviendo la vista hacia la izquierda o hacia la derecha.
  • Inclinación: rotación de la cámara alrededor de su eje X, moviendo la vista hacia arriba o hacia abajo.
  • Giro: rotación de la cámara alrededor del eje de visión.

Funciona mejor en escenas estáticas sin objetos en movimiento.

La compensación global del movimiento presenta varias ventajas:

  • Modela el movimiento dominante que se suele encontrar en las secuencias de vídeo con tan solo unos pocos parámetros. La contribución de estos parámetros a la tasa de bits es insignificante.
  • No divide los fotogramas. Esto evita la aparición de artefactos en los bordes de las particiones.
  • Una línea recta (en la dirección del tiempo) de píxeles con posiciones espaciales iguales en el fotograma corresponde a un punto que se mueve continuamente en la escena real. Otros esquemas de MC introducen discontinuidades en la dirección del tiempo.

MPEG-4 ASP admite compensación de movimiento global con tres puntos de referencia, aunque algunas implementaciones solo pueden usar uno. Un único punto de referencia solo permite el movimiento de traslación, lo que, debido a su elevado coste en términos de rendimiento, ofrece pocas ventajas sobre la compensación de movimiento basada en bloques.

Los objetos en movimiento dentro de un fotograma no se representan adecuadamente mediante la compensación de movimiento global. Por lo tanto, también es necesaria la estimación del movimiento local.

DCT con compensación de movimiento

Compensación de movimiento de bloques

La compensación de movimiento por bloques (BMC), también conocida como transformada discreta de coseno con compensación de movimiento (MC DCT), es la técnica de compensación de movimiento más utilizada. [ 2 ] En BMC, los fotogramas se dividen en bloques de píxeles (por ejemplo, macrobloques de 16×16 píxeles en MPEG ). Cada bloque se predice a partir de un bloque de igual tamaño en el fotograma de referencia. Los bloques no se transforman de ninguna manera, salvo que se desplazan a la posición del bloque predicho. Este desplazamiento se representa mediante un vector de movimiento .

Para aprovechar la redundancia entre vectores de bloques vecinos (por ejemplo, para un solo objeto en movimiento cubierto por múltiples bloques), es común codificar únicamente la diferencia entre el vector de movimiento actual y el anterior en el flujo de bits. El resultado de este proceso de diferenciación es matemáticamente equivalente a una compensación de movimiento global capaz de realizar un paneo. Más adelante en la cadena de codificación, un codificador de entropía aprovechará la distribución estadística resultante de los vectores de movimiento alrededor del vector cero para reducir el tamaño de la salida.

Es posible desplazar un bloque un número no entero de píxeles, lo que se denomina precisión subpíxel . Los píxeles intermedios se generan mediante la interpolación de píxeles vecinos. Generalmente, se utiliza una precisión de medio píxel o un cuarto de píxel ( Qpel , empleada por H.264 y MPEG-4/ASP). El coste computacional de la precisión subpíxel es mucho mayor debido al procesamiento adicional necesario para la interpolación y, en el lado del codificador, a la gran cantidad de bloques de origen potenciales que deben evaluarse.

La principal desventaja de la compensación de movimiento por bloques es que introduce discontinuidades en los bordes de los bloques (artefactos de bloqueo). Estos artefactos aparecen en forma de bordes horizontales y verticales pronunciados que son fácilmente detectables por el ojo humano y producen bordes falsos y efectos de resonancia (coeficientes grandes en subbandas de alta frecuencia) debido a la cuantización de los coeficientes de la transformada relacionada con Fourier utilizada para la codificación de transformada de los fotogramas residuales [ 4 ].

La compensación de movimiento por bloques divide el fotograma actual en bloques que no se superponen, y el vector de compensación de movimiento indica de dónde provienen esos bloques ( una idea errónea común es que el fotograma anterior se divide en bloques que no se superponen, y los vectores de compensación de movimiento indican hacia dónde se mueven esos bloques ) . Los bloques de origen suelen superponerse en el fotograma de origen. Algunos algoritmos de compresión de vídeo ensamblan el fotograma actual a partir de fragmentos de varios fotogramas transmitidos previamente.

Los fotogramas también pueden predecirse a partir de fotogramas futuros. Estos fotogramas futuros deben codificarse antes que los fotogramas predichos, por lo que el orden de codificación no necesariamente coincide con el orden real de los fotogramas. Estos fotogramas se suelen predecir desde dos direcciones: desde los fotogramas I o P que preceden o siguen inmediatamente al fotograma predicho. Estos fotogramas predichos bidireccionalmente se denominan fotogramas B. Un esquema de codificación podría ser, por ejemplo, IBBPBBPBBPBB.

Además, se ha propuesto el uso de teselas triangulares para la compensación de movimiento. En este esquema, el fotograma se divide en teselas triangulares y el siguiente se genera aplicando una transformación afín a estos triángulos. [ 5 ] Solo se registran/transmiten las transformaciones afines. Esto permite gestionar el zoom, la rotación, la traslación, etc.

Compensación de movimiento de tamaño de bloque variable

La compensación de movimiento de tamaño de bloque variable (VBSMC) es el uso de BMC con la capacidad del codificador de seleccionar dinámicamente el tamaño de los bloques. Al codificar video, el uso de bloques más grandes puede reducir la cantidad de bits necesarios para representar los vectores de movimiento, mientras que el uso de bloques más pequeños puede resultar en una menor cantidad de información residual de predicción para codificar. Otras áreas de trabajo han examinado el uso de métricas de características de forma variable, más allá de los límites de bloque, a partir de las cuales se pueden calcular vectores entre fotogramas. [ 6 ] Los diseños más antiguos como H.261 y MPEG-1 video generalmente usan un tamaño de bloque fijo, mientras que los más nuevos como H.263 , MPEG-4 Parte 2 , H.264/MPEG-4 AVC y VC-1 le dan al codificador la capacidad de elegir dinámicamente qué tamaño de bloque se utilizará para representar el movimiento.

Compensación del movimiento de bloques superpuestos

La compensación de movimiento por bloques superpuestos (OBMC) es una buena solución a estos problemas, ya que no solo aumenta la precisión de la predicción, sino que también evita los artefactos de bloqueo. Al usar OBMC, los bloques suelen ser el doble de grandes en cada dimensión y se superponen cuadrante a cuadrante con los 8 bloques vecinos. De esta forma, cada píxel pertenece a 4 bloques. En este esquema, hay 4 predicciones para cada píxel, que se suman para obtener una media ponderada. Para ello, los bloques se asocian a una función de ventana que tiene la propiedad de que la suma de 4 ventanas superpuestas es igual a 1 en todas partes.

Los estudios sobre métodos para reducir la complejidad de OBMC han demostrado que la contribución a la función de ventana es mínima para el bloque adyacente en diagonal. Reducir el peso de esta contribución a cero y aumentar los demás pesos en la misma cantidad conlleva una reducción sustancial de la complejidad sin una gran pérdida de calidad. En este esquema, cada píxel pertenece a 3 bloques en lugar de 4, y en lugar de utilizar 8 bloques vecinos, solo se utilizan 4 para cada bloque que se va a compensar. Este esquema se encuentra en el modo de predicción avanzada del Anexo F de H.263 .

Compensación de movimiento de cuarto de píxel (QPel) y medio píxel

En la compensación de movimiento, las muestras de un cuarto o la mitad son, en realidad, submuestras interpoladas a partir de vectores de movimiento fraccionarios. A partir de los vectores y las muestras completas, las submuestras se pueden calcular mediante filtrado bidimensional bicúbico o bilineal. Véase la subsección 8.4.2.2 «Proceso de interpolación de muestras fraccionarias» del estándar H.264.

Técnicas de codificación de imágenes 3D

La compensación de movimiento se utiliza en la codificación de vídeo estereoscópico .

En vídeo, el tiempo suele considerarse la tercera dimensión. Sin embargo, las técnicas de codificación de imágenes pueden ampliarse a una dimensión adicional.

JPEG 2000 utiliza ondículas, que también pueden emplearse para codificar el movimiento sin espacios entre bloques de forma adaptativa. Las transformaciones afines fraccionarias de píxeles provocan sangrado entre píxeles adyacentes. Si no se utiliza una resolución interna superior, las imágenes delta contrarrestan en gran medida la pérdida de nitidez de la imagen. La imagen delta también puede codificarse como ondículas, de modo que los bordes de los bloques adaptativos coincidan.

Las técnicas de codificación 2D+Delta utilizan codificación compatible con H.264 y MPEG-2 y pueden emplear compensación de movimiento para comprimir entre imágenes estereoscópicas.

Historia

Un precursor del concepto de compensación de movimiento se remonta a 1929, cuando RD Kell, en Gran Bretaña, propuso la idea de transmitir solo las partes de una escena de vídeo analógica que cambiaban de un fotograma a otro. En 1959, los investigadores de NHK , Y. Taki, M. Hatori y S. Tanaka, propusieron el concepto de compensación de movimiento entre fotogramas , mediante la codificación predictiva de vídeo entre fotogramas en la dimensión temporal . [ 7 ]

DCT con compensación de movimiento

La compresión de vídeo práctica con compensación de movimiento surgió con el desarrollo de la codificación DCT con compensación de movimiento (MC DCT), [ 8 ] también llamada compensación de movimiento por bloques (BMC) o compensación de movimiento DCT. Este es un algoritmo de codificación híbrido, [ 7 ] que combina dos técnicas clave de compresión de datos : la codificación de la transformada discreta del coseno (DCT) [ 8 ] en la dimensión espacial y la compensación de movimiento predictiva en la dimensión temporal . [ 7 ] La ​​codificación DCT es una técnica de codificación de transformación de compresión por bloques con pérdida que fue propuesta por primera vez por Nasir Ahmed , quien inicialmente la concibió para la compresión de imágenes , en 1972. [ 9 ]

En 1974, Ali Habibi en la Universidad del Sur de California introdujo la codificación híbrida, [ 10 ] [ 11 ] que combina la codificación predictiva con la codificación de transformación. [ 7 ] [ 12 ] Sin embargo, su algoritmo se limitó inicialmente a la codificación intra-fotograma en la dimensión espacial. En 1975, John A. Roese y Guner S. Robinson extendieron el algoritmo de codificación híbrida de Habibi a la dimensión temporal, utilizando la codificación de transformación en la dimensión espacial y la codificación predictiva en la dimensión temporal, desarrollando la codificación híbrida compensada por movimiento entre fotogramas . [ 7 ] [ 13 ] Para la codificación de transformación espacial, experimentaron con la DCT y la transformada rápida de Fourier (FFT), desarrollando codificadores híbridos entre fotogramas para ambos, y encontraron que la DCT es la más eficiente debido a su complejidad reducida, capaz de comprimir datos de imagen hasta 0,25 bits por píxel para una escena de videoteléfono con una calidad de imagen comparable a la de un codificador intra-fotograma que requiere 2 bits por píxel. [ 14 ] [ 13 ]

En 1977, Wen-Hsiung Chen desarrolló un algoritmo DCT rápido con CH Smith y SC Fralick. [ 15 ] En 1979, Anil K. Jain y Jaswant R. Jain desarrollaron aún más la compresión de video DCT con compensación de movimiento, [ 16 ] [ 7 ] también llamada compensación de movimiento por bloques. [ 7 ] Esto llevó a Chen a desarrollar un algoritmo práctico de compresión de video, llamado DCT con compensación de movimiento o codificación de escena adaptativa, en 1981. [ 7 ] La DCT con compensación de movimiento se convirtió más tarde en la técnica de codificación estándar para la compresión de video desde finales de la década de 1980 en adelante. [ 17 ] [ 2 ]

El primer estándar de codificación de vídeo digital fue H.120 , desarrollado por el CCITT (ahora ITU-T) en 1984. [ 18 ] H.120 utilizaba codificación DPCM con compensación de movimiento, [ 7 ] que era ineficiente para la codificación de vídeo, [ 17 ] y por lo tanto H.120 era poco práctico debido a su bajo rendimiento. [ 18 ] El estándar H.261 se desarrolló en 1988 basado en la compresión DCT con compensación de movimiento, [ 17 ] [ 2 ] y fue el primer estándar práctico de codificación de vídeo. [ 18 ] Desde entonces, la compresión DCT con compensación de movimiento ha sido adoptada por todos los principales estándares de codificación de vídeo (incluidos los formatos H.26x y MPEG ) que le siguieron. [ 17 ] [ 2 ]

Véase también

Aplicaciones

Referencias

  1. Chen, Jie; Koc, Ut-Va; Liu, KJ Ray (2001). Diseño de sistemas de codificación de vídeo digital: un enfoque completo del dominio comprimido . CRC Press . pág.  71. ISBN 9780203904183.
  2. 1 2 3 4 5 Li, Jian Ping (2006). Actas de la Conferencia Internacional de Computación 2006 sobre Tecnología de Medios Activos Wavelet y Procesamiento de la Información: Chongqing, China, 29-31 de agosto de 2006. World Scientific . pág. 847. ISBN  9789812709998.
  3. "Preguntas frecuentes sobre MPEG-2" . 20 de febrero de 2009. Archivado del original el 20 de febrero de 2009.
  4. Zeng, Kai, et al. "Caracterización de artefactos perceptuales en secuencias de vídeo comprimidas". IS&T/SPIE Electronic Imaging. Sociedad Internacional de Óptica y Fotónica, 2014.
  5. Aizawa, Kiyoharu y Thomas S. Huang. "Codificación de imágenes basada en modelos: técnicas avanzadas de codificación de vídeo para aplicaciones de muy baja tasa de bits". Actas del IEEE 83.2 (1995): 259-271.
  6. Garnham, Nigel W. (1995). Codificación de vídeo con compensación de movimiento - Tesis doctoral (PDF) . Universidad de Nottingham. OCLC 59633188 . 
  7. 1 2 3 4 5 6 7 8 9 "Historia de la compresión de vídeo" . ITU-T . Equipo conjunto de vídeo (JVT) de ISO/IEC MPEG e ITU-T VCEG (ISO/IEC JTC1/SC29/WG11 e ITU-T SG16 Q.6). Julio de 2002. págs. 11, 24–9 , 33, 40–1 , 53–6 . Consultado el 3 de noviembre de 2019 . 
  8. 1 2 Lea, William (1994). Vídeo a la carta: Documento de investigación 94/68 . Biblioteca de la Cámara de los Comunes . Archivado del original el 20 de septiembre de 2019. Recuperado el 20 de septiembre de 2019 .
  9. Ahmed, Nasir (enero de 1991). "Cómo desarrollé la transformada discreta del coseno" . Procesamiento de señales digitales . 1 (1): 4– 5. Bibcode : 1991DSP.....1....4A . doi : 10.1016/1051-2004(91)90086-Z .
  10. Habibi, Ali (1974). "Codificación híbrida de datos pictóricos". IEEE Transactions on Communications . 22 (5): 614– 624. Bibcode : 1974ITCom..22..614H . doi : 10.1109/TCOM.1974.1092258 .
  11. Chen, Z.; He, T.; Jin, X.; Wu, F. (2020). "Aprendizaje para la compresión de vídeo". IEEE Transactions on Circuits and Systems for Video Technology . 30 (2): 566– 576. arXiv : 1804.09869 . Bibcode : 2020ITCSV..30..566C . doi : 10.1109/TCSVT.2019.2892608 . S2CID 13743007 . 
  12. Ohm, Jens-Rainer (2015). Codificación y transmisión de señales multimedia . Springer. pág. 364. ISBN  9783662466919.
  13. 1 2 Roese, John A.; Robinson, Guner S. (30 de octubre de 1975). Tescher, Andrew G. (ed.). "Codificación espacial y temporal combinada de secuencias de imágenes digitales". Transmisión eficiente de información pictórica . 0066. Sociedad Internacional de Óptica y Fotónica: 172–181 . Bibcode : 1975SPIE...66..172R . doi : 10.1117/12.965361 . S2CID 62725808 . 
  14. Huang, TS (1981). Análisis de secuencias de imágenes . Springer Science & Business Media . pág. 29. ISBN  9783642870378.
  15. Chen, Wen-Hsiung; Smith, CH; Fralick, SC (septiembre de 1977). "Un algoritmo computacional rápido para la transformada discreta del coseno". IEEE Transactions on Communications . 25 (9): 1004– 1009. Bibcode : 1977ITCom..25.1004W . doi : 10.1109/TCOM.1977.1093941 .
  16. Cianci, Philip J. (2014). Televisión de alta definición: Creación, desarrollo e implementación de la tecnología HDTV . McFarland. pág. 63. ISBN  9780786487974.
  17. 1 2 3 4 Ghanbari, Mohammed (2003). Códecs estándar: compresión de imágenes a codificación de vídeo avanzada . Institution of Engineering and Technology . págs. 1–2 . ISBN  9780852967102.
  18. 1 2 3 "Infografía sobre la historia de los formatos de archivo de vídeo" . RealNetworks . 22 de abril de 2012. Consultado el 5 de agosto de 2019 .
  • Conversión de velocidad temporal : artículo que ofrece una visión general de las técnicas de compensación de movimiento.
  • Nueva arquitectura FFT y diseño de chip para compensación de movimiento basado en correlación de fase.
  • Los coeficientes DCT y DFT están relacionados por factores simples en la Wayback Machine (archivado el 29/12/2016).
  • DCT es mejor que DFT también para vídeo.
  • John Wiseman. "Introducción a la compresión de vídeo MPEG" . Archivado del original el 30 de abril de 2017.
  • DCT y compensación de movimiento
  • Enlace obsoleto en archive.today (archivado el 23/06/2007)
Obtenido de " https://en.wikipedia.org/w/index.php?title=Motion_compensation&oldid=1333795004 "