Il Vulkan Working Group del Khronos Group ha sviluppato una serie di estensioni per la decodifica e codifica video, note collettivamente come Vulkan Video, a partire dal 2022. Queste estensioni integrano la compressione e decompressione dei flussi video accelerata dall’hardware utilizzando codec ampiamente adottati, sfruttando appieno le potenzialità di Vulkan. Ciò consente agli sviluppatori di unire in modo fluido il rendering e l’accelerazione computazionale basati su GPU con l’elaborazione video in un runtime altamente efficiente.
Novità di Vulkan 1.3.302
Con il rilascio della versione 1.3.302 di Vulkan, il Khronos Group ha annunciato 2 nuove estensioni di codifica. La prima è l’attesissima estensione Encode AV1, che arricchisce Vulkan Video aggiungendo funzionalità di codifica per il codec AV1, complementando il supporto esistente per la decodifica AV1. Questo traguardo significa che Vulkan Video ora offre accelerazione completa sia per la decodifica che per la codifica dei codec standard H.264, H.265 e AV1. Inoltre, la nuova estensione Encode Quantization Map introduce per la prima volta funzionalità avanzate di codifica per tutti i codec supportati, fornendo così agli sviluppatori gli strumenti necessari per realizzare applicazioni video avanzate con Vulkan.
Estensione Encode AV1
La nuova estensione VK_KHR_video_encode_av1 si basa naturalmente sulle estensioni core già esistenti di Vulkan Video, come le precedenti estensioni di codifica H.264 e H.265. Questa estensione introduce API necessarie per interrogare le capacità di codifica AV1 dell’implementazione, specificare i parametri dell’intestazione della sequenza AV1, definire i parametri per ogni immagine AV1, fornire informazioni sulla gestione dei riferimenti AV1 e configurare il controllo del bitrate per AV1. Inoltre, viene introdotta una nuova intestazione standard video specifica per la codifica AV1: vk_video/vulkan_video_codec_av1std_encode.h. Insieme all’intestazione esistente vk_video/vulkan_video_codec_av1std.h, rilasciata con l’estensione Decode AV1, gli sviluppatori hanno accesso ai parametri del codec AV1 necessari per configurare le sessioni e le operazioni di codifica AV1.
Estensione Encode Quantization Map
La nuova estensione VK_KHR_video_encode_quantization_map consente alle applicazioni di fornire una “mappa†con ciascuna immagine di input per influenzare la quantizzazione per blocco durante la codifica. Questa funzionalità è preziosa per le applicazioni che effettuano analisi delle immagini in ingresso o sono consapevoli delle aree critiche dell’immagine che beneficerebbero da una maggiore allocazione di bit durante la codifica, migliorando così la qualità complessiva della codifica. Sono supportate 2 tipologie di mappe: le mappe di quantizzazione delta, che forniscono un controllo specifico del codec sulla quantizzazione finale per ciascun blocco, e le mappe di enfasi, che offrono un suggerimento indipendente dal codec sull’importanza relativa dei diversi blocchi dell’immagine.
Invito all’Azione e Supporto
Il Vulkan Working Group incoraggia gli sviluppatori a utilizzare le estensioni Vulkan Video per portare nuovi livelli di prestazioni e funzionalità alle loro applicazioni video. È benvenuto ogni feedback degli sviluppatori sui tracker delle problematiche di Vulkan su GitHub riguardo alle estensioni Encode AV1 e Encode Quantization Map. Questi tracker saranno aggiornati con link a risorse relative a Vulkan Video man mano che diventano disponibili. Inoltre, si attende con interesse qualsiasi funzionalità aggiuntiva importante per gli utenti che dovrebbe essere integrata in Vulkan Video.
Un prossimo rilascio del Vulkan SDK includerà intestazioni aggiornate e supporto per i livelli di validazione delle nuove estensioni video rilasciate. Nel frattempo, è possibile trovare le intestazioni Vulkan disponibili.
Tutti sono invitati a partecipare alle varie presentazioni su Vulkan Video e altri argomenti durante l’evento Vulkanised 2025, che si terrà a Cambridge, Regno Unito, dal 11 al 13 febbraio 2025.
Supporto dei Driver
I driver Vulkan che supportano sia le estensioni Encode AV1 che Encode Quantization Map, oltre a tutte le estensioni video rilasciate finora, sono già disponibili, tra cui:
- NVIDIA: driver beta per Windows e Linux
- AMD: driver beta per Windows
- Intel: driver Windows in arrivo
C’è una forte adozione della comunità open-source delle funzionalità Vulkan Video, compreso il supporto per la decodifica e la codifica nei framework multimediali GStreamer e FFmpeg, così come nei driver open-source RADV/ANV per GPU AMD/Intel.
Download e maggiori dettagli sull’aggiornamento delle specifiche Vulkan 1.3.302 tramite Vulkan-Docs su GitHub.
Fonte: https://www.khronos.org/blog/khronos-announces-vulkan-video-encode-av1-encode-quantization-map-extensions
Fonte: https://github.com/KhronosGroup/Vulkan-Docs/commit/310c86fb5a06544a84bce70867f7c038b748e51c
Fonte: https://www.phoronix.com/news/Vulkan-1.3.302-Published
Source: Read More