top of page
sabrent 3.png
210610_KR-FV43U_banner_1500x1500px_A.png
Aplus_MARS_2107_Eng(1).png
  • Foto del escritorMasterbitz

Khronos finaliza las extensiones de vídeo Vulkan para la descodificación acelerada de H.264 y H.265

En abril de 2021, el grupo de trabajo Vulkan de Khronos publicó un conjunto de extensiones provisionales, denominadas colectivamente "Vulkan Video", para integrar sin problemas la compresión y descompresión de vídeo acelerada por hardware en la API Vulkan. Hoy, Khronos publica las extensiones finalizadas que incorporan los comentarios de la industria y exponen la funcionalidad central y de descodificación de Vulkan Video para proporcionar descodificación H.264 y H.265 totalmente acelerada.


Khronos lanzará una serie continua de extensiones de Vulkan Video para habilitar códecs adicionales y acelerar tanto la codificación como la descodificación. Este blog es una visión general de la arquitectura de Vulkan Video y también proporciona detalles sobre las extensiones finalizadas y enlaces a recursos importantes para ayudarle a crear sus primeras aplicaciones de Vulkan Video.


Introducción

Vulkan Video se adhiere a la filosofía Vulkan de proporcionar a las aplicaciones un control flexible y detallado sobre la programación, sincronización y asignación de memoria. Aprovechando el marco existente de la API Vulkan, las extensiones Vulkan Video permiten un uso eficiente, de baja latencia y baja sobrecarga de los recursos de procesamiento para el procesamiento acelerado de vídeo, incluyendo la distribución de tareas de procesamiento de secuencias a través de múltiples núcleos de CPU y hardware de códecs de vídeo, todo ello con portabilidad de aplicaciones a través de múltiples plataformas y dispositivos que van desde pequeños dispositivos embebidos a servidores de alto rendimiento compatibles con Windows y Linux.


Descripción general de las extensiones de vídeo Vulkan

Las GPU suelen contener motores de aceleración de codificación y descodificación de vídeo dedicados e independientes de otros motores gráficos y de cálculo. De hecho, algunos dispositivos físicos pueden soportar sólo decodificación de vídeo y/o aceleración de codificación de vídeo. En consecuencia, Vulkan Video añade colas de decodificación y codificación de vídeo para soportar estas operaciones de vídeo.


Además, el campo de los códecs de vídeo está siempre cambiando. Las herramientas de codificación de vídeo más avanzadas y específicas del sector facilitan la compresión y descompresión de vídeo, lo que da lugar a nuevos códecs y extensiones de códecs. Así, Vulkan Video fue diseñado para ser lo suficientemente flexible como para soportar una amplia gama de códecs existentes y futuros. Para ello, incluye extensiones universales "básicas" que deberían ser útiles para todos los códecs y extensiones específicas de códecs que sólo son útiles para un tipo de códec. La figura 2 muestra las extensiones de Vulkan Video junto con su estado y relaciones.


Esta versión de Vulkan Video finaliza las siguientes extensiones:


VK_KHR_video_queue: API común para todas las operaciones de codificación de vídeo.

VK_KHR_video_decode_queue: APIs comunes para todas las operaciones de decodificación de vídeo.

VK_KHR_video_decode_h264: capacidades y parámetros específicos de decodificación H.264 (promovido de EXT a KHR en esta versión final).

VK_KHR_video_decode_h265: capacidades y parámetros específicos de descodificación H.265 (promovidos de EXT a KHR en esta versión final).


Colectivamente, las extensiones anteriores permiten exponer la aceleración de decodificación de vídeo H.264 y H.265 a través de Vulkan.


Las siguientes extensiones relacionadas con la codificación siguen siendo provisionales y se espera que se finalicen en 2023 junto con las nuevas extensiones que se introducirán para las operaciones de descodificación VP9 y descodificación/codificación AV1:


VK_KHR_video_encode_queue: API común para todas las operaciones de codificación de vídeo.

VK_EXT_video_encode_h264: capacidades y parámetros específicos de la codificación H.264.

VK_EXT_video_encode_h265: capacidades y parámetros específicos de codificación H.265.


Como ejemplo, una implementación de Vulkan Video que sólo soporta decodificación H.264 sólo expondría soporte para las extensiones VK_KHR_video_queue, VK_KHR_video_decode_queue, y VK_KHR_video_decode_h264, y una aplicación usaría las tres extensiones juntas para realizar operaciones de decodificación H.264 en ese dispositivo de destino.


La API estándar vkGetPhysicalDeviceQueueFamilyProperties2 puede utilizarse para determinar la compatibilidad con operaciones de códec, como la descodificación H.264, encadenando VkVideoQueueFamilyPropertiesKHR para recuperar VkVideoCodecOperationFlagsKHR.

3 visualizaciones0 comentarios
20220530_Trinity_En_Aplus (1)(1).jpg
bottom of page