VMAF-CUDA de NVIDIA y Netflix: Acelerando la Evaluación de Calidad de Video
La creciente demanda de servicios de streaming ha planteado un desafío significativo para la industria: ofrecer una experiencia visual de alta calidad sin comprometer el ancho de banda. Para enfrentar esta problemática, se han desarrollado métricas avanzadas de evaluación de video, entre las que destaca VMAF (Video Multi-Method Assessment Fusion), un estándar creado por Netflix que se aproxima de manera precisa a la percepción visual humana.
Sin embargo, el cálculo de VMAF ha sido tradicionalmente un proceso que consume muchos recursos y tiempo en las CPU. Ante esta limitación, NVIDIA y Netflix se han unido para presentar VMAF-CUDA, una solución que introduce aceleración por GPU en VMAF 3.0 y FFmpeg v6.1.
¿Qué Es VMAF y Por Qué Su Evaluación Es Compleja?
A diferencia de las métricas convencionales como PSNR (Peak Signal-to-Noise Ratio), que se basa en detectar diferencias de píxeles, y SSIM (Structural Similarity Index), que se enfoca en luminosidad y contraste, VMAF integra un enfoque de modelado de visión humana junto con técnicas de aprendizaje automático.
La evaluación de una imagen codificada en comparación con su referencia implica analizar tres componentes fundamentales:
Lee también
- VIF (Visual Information Fidelity): Que mide la pérdida de información percibida respecto al contenido original.
- ADM (Additive Distortion Measurement): Que examina los cambios estructurales y la degradación de texturas, siendo particularmente sensible a distorsiones como el ruido.
- Métricas de movimiento: Que valoran la representación del movimiento en escenas dinámicas a través del tiempo.
Un regresor basado en Máquinas de Vectores de Soporte (SVM) combina estos componentes para generar la puntuación final de VMAF.
Evolución Tecnológica: CPU vs. GPU (CUDA)
La principal diferencia entre la implementación tradicional en CPU y la nueva solución basada en GPU radica en la forma en que se procesan los cálculos.
Procesamiento en CPU
En el enfoque basado en CPU, los cálculos de VMAF distribuyen la extracción de características a través de múltiples hilos en paralelo. Sin embargo, el tiempo de procesamiento por cuadro es limitado por el componente más lento, usualmente el VIF. Además, las métricas relacionadas con el movimiento presentan dependencias temporales entre cuadros que complican la paralelización.
Lee también
Procesamiento en GPU con VMAF-CUDA
Por otro lado, VMAF-CUDA asigna el 100% de la capacidad de cómputo de la GPU a cada métrica de manera secuencial, lo que resulta en una notable reducción de la latencia de cada cálculo.
Sin cuellos de botella en PCIe: La integración de VMAF-CUDA en el flujo de trabajo con hardware como NVDEC (decodificación) y NVENC (codificación) permite que tanto el cuadro de referencia como el codificado permanezcan en la memoria VRAM de la GPU. Esto elimina las costosas transferencias de datos que normalmente ocurren entre el bus PCIe y la memoria RAM de la CPU.
Desempeño: Un Análisis de Resultados
Las pruebas llevadas a cabo en un nodo de cálculo con procesadores Dual Intel Xeon 8480 comparado con una sola GPU NVIDIA L4 han demostrado resultados impresionantes:
1. Latencia por Cuadro
- En resolución 4K, VMAF-CUDA ha logrado un acceso a la puntuación de cuadro 36,9 veces más rápido que el método CPU.
- En resolución 1080p, la latencia se redujo en 26,1 veces.
2. Rendimiento en FFmpeg (FPS)
Analizando transmisiones de video individuales con el filtro libvmaf_cuda en FFmpeg:
- En 1080p, la GPU NVIDIA L4 alcanzó 775 FPS, en comparación con los 176 FPS del servidor Xeon dual (4,4 veces más rápido).
- En 4K, la rendición de la GPU fue de 178 FPS frente a los 64 FPS de la CPU (2,8 veces más rápido).
Evaluación Costo-Beneficio en Centros de Datos
Para las plataformas de streaming a gran escala, la densidad por servidor y el costo total de propiedad (TCO) son obligatorios a considerar. La comparación entre un servidor tradicional de 2U y uno optimizado con 8 tarjetas NVIDIA L4 muestra lo siguiente:
Métrica de Rendimiento / Costo Servidor CPU (2U Dual Intel Xeon Platinum 8480) Servidor GPU (2U con 8x NVIDIA L4)
| Throughput Total en 4K | 235 FPS | 1.424 FPS (~6 veces superior)
| Tiempo para procesar 1.000 hrs de video 4K | 127,6 horas | 21,0 horas
| Costo estimado por 1.000 hrs (4K a 30 FPS) | $97 USD | $24 USD
Esta optimización permite un ahorro directo en costos de cómputo de hasta 75%, manteniendo el mismo nivel de consumo energético.
Implementación en la Industria: Casos Destacados
Snap Inc.
Snap utiliza VMAF-CUDA en sus procesos de evaluación de calidad para Snapchat Memories. Gracias a esta tecnología, la reducción de costos de cómputo les ha permitido evaluar la calidad tras cada transcodificación y ajustar parámetros de codificación automáticamente, logrando una mejora de hasta 2,5 veces en sus tiempos de procesamiento mediante instancias en la nube AWS con GPUs NVIDIA T4.
V-Nova
V-Nova ha implementado VMAF-CUDA para acelerar la evaluación de métricas fuera de línea en su infraestructura de control de calidad, incrementando la velocidad en más de 2 veces. Además, están estudiando el cálculo de VMAF en tiempo real dentro del bucle de decisión del estándar de codificación LCEVC (MPEG-5 Part 2).
Conclusión y Disponibilidad
La llegada de VMAF-CUDA ha transformado una herramienta de evaluación de calidad de video previamente dependiente de clusters de CPU en un proceso ágil, económico y escalable. Al integrarse asíncronamente con los motores NVDEC y NVENC, las GPUs de NVIDIA permiten monitorear la calidad del video en tiempo real sin interrumpir las actividades de transcodificación.
La aceleración VMAF-CUDA está disponible públicamente en los repositorios de libvmaf (v3.0+) y FFmpeg (v6.1+), siendo implementada fácilmente a través de contenedores Docker listos para entornos de producción.
Para conocer más sobre las innovaciones en tecnología de video y otros temas relacionados, se invita a seguir explorando este blog.



