FFmpeg ha integrado soporte para la interpolación de fotogramas acelerada por las GPU NVIDIA GeForce RTX mediante una implementación basada en Vulkan. La tecnología permite analizar dos fotogramas consecutivos y generar uno intermedio utilizando el hardware Optical Flow de la GPU, aumentando así la tasa de imágenes del vídeo sin volver a renderizar el contenido original.
NVIDIA denomina esta técnica Engine-assisted Frame-rate Up Conversion (FRUC) y su integración abre la puerta a convertir, por ejemplo, vídeos de 30 FPS en 60 FPS o material cinematográfico de 24 FPS en 48 FPS. La nueva implementación funciona oficialmente con las GeForce RTX 30, RTX 40 y RTX 50, aunque el acelerador Optical Flow existe desde la arquitectura Turing.
FFmpeg puede generar el fotograma intermedio directamente con la GPU
El funcionamiento de FRUC va más allá de un filtro convencional de suavizado. El Optical Flow Accelerator (NVOFA) analiza el movimiento existente entre dos imágenes consecutivas y calcula vectores que describen cómo se desplazan los objetos de un fotograma al siguiente. Esa información permite a FFmpeg reconstruir una posición intermedia en lugar de limitarse a mezclar ambas imágenes.
Dentro de este proceso, NVENC proporciona los datos de los fotogramas utilizados por el codificador, mientras el hardware Optical Flow calcula el movimiento entre ellos. FFmpeg puede aprovechar después esos vectores para sintetizar un nuevo fotograma entre los dos originales, aumentando la frecuencia de imagen sin necesitar que el motor gráfico vuelva a representar toda la escena.
La diferencia es importante porque el vídeo terminado no contiene la información tridimensional original de un videojuego. FRUC no puede pedir al motor que dibuje una imagen nueva desde otra posición temporal; debe deducir cómo habría sido utilizando exclusivamente los fotogramas existentes y su movimiento aparente.
Vulkan elimina la dependencia que bloqueó el parche anterior
NVIDIA ya había intentado llevar esta funcionalidad a FFmpeg en 2023, pero aquella propuesta dependía de software propietario y terminó sin integrarse en el proyecto. La nueva implementación utiliza Vulkan para acceder directamente a las capacidades necesarias del hardware, eliminando ese obstáculo y permitiendo finalmente su incorporación.
Esta decisión tiene bastante más importancia de la que podría sugerir un simple cambio de API. FFmpeg constituye una de las bases del procesamiento multimedia moderno y se utiliza directa o indirectamente en innumerables aplicaciones, servicios y plataformas. Integrar FRUC en el propio proyecto facilita que otros desarrolladores puedan construir herramientas sobre esta capacidad sin diseñar desde cero todo el proceso de interpolación.
La CPU deja de cargar con uno de los trabajos más pesados de la interpolación
La interpolación de vídeo mediante software puede resultar muy exigente para el procesador, especialmente cuando aumenta la resolución, la duración del contenido o la frecuencia de imagen objetivo. NVIDIA traslada una parte crítica de ese trabajo al acelerador Optical Flow dedicado integrado dentro de sus GPU, evitando utilizar la CPU para realizar todos los cálculos de movimiento.
Eso convierte FRUC en una opción especialmente interesante para flujos de codificación, restauración o conversión de vídeo en grandes volúmenes. Pasar de 30 a 60 FPS implica crear prácticamente un fotograma nuevo entre cada pareja original, por lo que el coste computacional aumenta rápidamente cuando se trabaja con contenidos de alta resolución.
El resultado tampoco debe confundirse con una mejora de la información capturada originalmente. Un vídeo grabado a 30 FPS seguirá teniendo únicamente 30 fotogramas reales por segundo; los otros 30 son reconstrucciones calculadas a partir del movimiento detectado. La calidad final dependerá, por tanto, de que NVOFA pueda interpretar correctamente desplazamientos, cambios de escena, objetos superpuestos y movimientos rápidos.
Ahí se encuentra también la principal diferencia frente a tecnologías como DLSS Frame Generation en videojuegos. Aunque ambas recurren a información de movimiento para crear imágenes intermedias, FFmpeg trabaja sobre vídeo previamente generado, sin acceso al motor del juego, vectores de movimiento internos o información geométrica completa de la escena.
Las RTX 20 tienen Optical Flow, pero quedan fuera del soporte oficial
El Optical Flow Accelerator apareció originalmente con las GeForce RTX 20 basadas en Turing, por lo que el hardware necesario no es completamente nuevo. Sin embargo, esta implementación de FRUC mediante Vulkan establece como mínimo oficial las GeForce RTX 30 con arquitectura Ampere.
Eso deja como compatibles a las RTX 30, RTX 40 y RTX 50, que podrán utilizar FFmpeg para acelerar este proceso directamente mediante la GPU. Los dos ejemplos proporcionados muestran una duplicación de frecuencia: 30 FPS pasan a 60 FPS y 24 FPS se convierten en 48 FPS mediante la inserción de fotogramas calculados.
La llegada de FRUC a FFmpeg resulta especialmente relevante porque NVIDIA no está introduciendo simplemente otra función dentro de sus controladores. La interpolación pasa a formar parte de una de las herramientas multimedia más utilizadas del sector, haciendo que el hardware dedicado de las RTX pueda aprovecharse también fuera del terreno tradicional de los videojuegos.
Vía: TechPowerUp











