NVIDIA Video Codec SDK 13.1: Zero-Copy Transcode, AV1 B-Frames, and Frame-Accurate Seek
- NVIDIA Video Codec SDK 13.1 introduce el modo de referencia jerárquica para AV1, soportando hasta 31 B-frames, combinando información de ajuste UHQ con codificación iterativa y logrando ahorros significativos de bitrate tanto en modos CQ (Constant Quality) como VBR (Variable Bitrate), mejorando la eficiencia de codificación sin penalización de rendimiento.
- Las mejoras en decodificación incluyen estadísticas por macrobloque para H.264/HEVC, búsqueda precisa de frames mediante una arquitectura consciente de GOP y soporte expandido para MV-HEVC estereoscópico con metadatos de vista/capa y compatibilidad con terceros, permitiendo analíticas avanzadas aceleradas por GPU y acceso preciso a frames para flujos de trabajo de IA y edición.
- El pipeline de transcodificación ha sido rediseñado con una arquitectura modular basada en colas y soporte para transcodificación zero-copy con buffers CUarray compartidos, resultando en una menor utilización de SM y ancho de banda de memoria, mayor rendimiento, gran capacidad de personalización y un despliegue simplificado mediante un entorno de desarrollo oficial basado en Docker.
El contenido generado por IA puede resumir información de manera incompleta. Verifique la información importante. Más información
La demanda de video de alta calidad continúa acelerándose en todas las industrias, impulsando desde experiencias de streaming inmersivas hasta colaboración remota, herramientas de medios de IA generativa y entrega de contenido a gran escala.
Detrás de estas experiencias existe una necesidad creciente de pipelines de video que sean más rápidos, más eficientes y capaces de manejar formatos y cargas de trabajo cada vez más complejos. El NVIDIA Video Codec SDK ayuda a los desarrolladores a enfrentar ese desafío proporcionando acceso a la codificación y decodificación de video acelerada por GPU a través de los motores de video dedicados de NVIDIA.
El NVIDIA Video Codec SDK 13.1 ya está disponible. Invitamos a los desarrolladores a explorar las últimas funciones en sus pipelines de video, aprovechar las aplicaciones de ejemplo rediseñadas y compartir sus comentarios a través de los foros de NVIDIA Developer.
¿Qué hay de nuevo en el SDK 13.1?
· Modo de referencia jerárquica para AV1 con hasta 31 B-frames
· Información de ajuste UHQ combinada con codificación iterativa
· Estadísticas de decodificación por macrobloque para H.264 y HEVC
· Información de vista durante la decodificación MV-HEVC
· Búsqueda (seek) a un frame específico
Características de transcodificación:
· CUarray asignado por la aplicación como entrada para NVIDIA Video Encoder (NVENC) y salida para NVIDIA Video Decoder (NVDEC)
· Ejemplos de transcodificador rediseñados con una arquitectura modular basada en colas
· Entorno de desarrollo oficial basado en Docker
Mejoras en la codificación
¿Por qué usar el modo de referencia jerárquica de AV1?
El uso de B-frames como referencia mejora la calidad de codificación. El modo de referencia jerárquica mejora esto aún más al organizar los B-frames en una estructura de referencia tipo árbol: los nodos hoja son B-frames que no son de referencia, y la raíz es el B-frame central. Esta estructura aumenta el número máximo de B-frames de NVENC de 7 a 31, permitiendo al codificador explotar la redundancia temporal y mejorar la calidad general. El uso de este modo no añade ninguna penalización de rendimiento, aunque el consumo de memoria de video aumenta.

La estructura jerárquica permite optimizar la eficiencia de compresión al seleccionar estratégicamente qué frames sirven como referencia para otros, maximizando la calidad visual en escenas complejas.
El SDK 13.1 añade el modo de referencia jerárquica para AV1, soportando 1, 3, 7, 15 y 31 B-frames; H.264 y HEVC seguirán en futuras versiones de controladores. El modo es más efectivo con siete o más B-frames y tiene un impacto mínimo en el rendimiento. Para detalles de configuración, consulte la Guía de programación de NVENC.
La Figura 2, a continuación, muestra los ahorros de bitrate al codificar 15 B-frames en modo Constant Quality (CQ), comparado con el ajuste High Quality (HQ) de NVENC en el preset p7.

El gráfico demuestra que, bajo condiciones de calidad constante, el uso de jerarquía permite reducir el ancho de banda necesario manteniendo la fidelidad visual.
La Figura 3, a continuación, muestra los ahorros de bitrate al codificar 15 B-frames en modo Variable Bitrate (VBR).

El ahorro de bitrate en VBR es consistente con las mejoras observadas en CQ, validando la eficiencia del nuevo modelo de referencia en diversos escenarios de tasa de bits.
Ajuste UHQ con codificación iterativa
La codificación iterativa (introducida en Video Codec SDK 12.1) congela el avance automático del estado del codificador y permite al usuario volver a codificar el mismo frame con diferentes parámetros. NVENC rastrea el estado de cada iteración y puede detenerse y confirmar cualquiera de ellas.
La información de ajuste UHQ (introducida en Video Codec SDK 12.2) combina el nivel de lookahead y el filtrado temporal para ofrecer los mejores compromisos de calidad-vs-rendimiento en codificación tolerante a la latencia. El filtrado temporal reduce el ruido en video natural mediante el uso de estimación de movimiento para encontrar parches coincidentes en frames adyacentes y aplicarlos para filtrar el frame actual, obteniendo ganancias de codificación promedio del 4–5% en contenido natural. La función de nivel de lookahead analiza frames futuros y utiliza coding tree units (CTUs) y otras estadísticas para asignar bits eficientemente para el control de tasa. Actualmente se soportan cuatro niveles de lookahead con diferentes compromisos de rendimiento y calidad.
La versión 13.1 combina la información de ajuste UHQ con la codificación iterativa, por lo que el nivel de lookahead y el filtrado temporal ahora funcionan junto con la re-codificación por iteración.
Mejoras en la decodificación
Estadísticas de decodificación por macrobloque
La API NVDECODE ahora recupera estadísticas detalladas de decodificación por macrobloque para cada frame decodificado de contenido H.264 y H.265 (HEVC). Para cada bloque de 16×16, el decodificador expone el parámetro de cuantificación (QP) de luma, el tipo de unidad de codificación (Intra, Inter, Skip o PCM) y hasta dos vectores de movimiento (hacia adelante y hacia atrás), todo extraído como un subproducto natural de la decodificación por hardware sin sobrecarga adicional de CPU.
Estas estadísticas desbloquean flujos de trabajo de análisis de video acelerados por GPU que anteriormente requerían el análisis del bitstream por parte de la CPU. Los vectores de movimiento permiten la detección de cambios de escena, seguimiento de objetos y análisis de límites de tomas. Los valores de QP brindan una vista por bloque de la calidad de codificación para la optimización adaptativa de bitrate y monitoreo de calidad. Los tipos de macrobloque revelan la estructura de codificación útil para la clasificación de contenido y la investigación de compresión.
El flujo de trabajo es directo: las aplicaciones consultan las capacidades del decodificador mediante cuvidGetDecoderCaps(), habilitan la recopilación de estadísticas al crear el decodificador y recuperan un buffer de estadísticas residente en la GPU con cada frame decodificado desde cuvidMapVideoFrame(). El usuario puede copiar las estadísticas a la memoria del host o procesarlas directamente en la GPU con kernels CUDA para pipelines en tiempo real. El SDK incluye un ejemplo listo para usar, AppDec -dumpstats, que demuestra el flujo completo.
Búsqueda precisa de frames (Frame-accurate seek)
Los flujos de trabajo de IA —desde pipelines de inferencia para detección de objetos, moderación de contenido y resumen de video, hasta la preparación de datos de entrenamiento que muestrean diversos frames en grandes datasets— frecuentemente necesitan frames específicos en lugar de una decodificación secuencial.
La edición de video y la postproducción no lineal tienen el mismo requisito. El Video Codec SDK ahora proporciona una API integral de búsqueda y acceso aleatorio a frames a través de la clase NvVideoDecoder, haciendo que el acceso preciso a frames sea tan simple como la indexación de arreglos mientras se obtienen solo los frames que se necesitan.
Una arquitectura de búsqueda consciente de GOP maneja la solicitud. Para el frame N, el SDK localiza el frame IDR más cercano antes del objetivo, busca el demuxer allí y limpia el estado del decodificador mediante CUVID_PKT_DISCONTINUITY.
Desde ese IDR en adelante, solo se procesan los frames necesarios para llegar a N: las banderas del parser y los frames que no son de referencia se omiten, y los frames de referencia se decodifican hasta alcanzar el objetivo, garantizando una precisión absoluta en el frame solicitado.
Vía NVIDIA Developer Blog.




