Vulkan Video 使開發人員可以選擇一個強大的新 API 來訪問視頻處理加速。 NVIDIA 正在通過工具和示例擴展其對 Vulkan 視頻的承諾,以幫助應用程序有效利用這一重要的新功能。這篇文章將幫助您發現 Vulkan 視頻是否適合您的應用程序,如果適合,如何開始。
為什么選擇 Vulkan 視頻?
Khronos Group 的開放標準 Vulkan API 使應用程序能夠實現靈活的低級別 GPU 加速,包括對調度、同步和內存分配的細粒度控制。
Vulkan 視頻將硬件加速流壓縮和解壓縮與 Vulkan 的全部功能無縫集成。這使開發人員能夠在單個有效的運行時間內將 GPU 渲染和計算加速與視頻處理相結合。
Vulkan 視頻為機器學習、視頻編輯、智能視頻分析、視頻轉碼、游戲和電影流,甚至虛擬桌面體驗的推理和培訓等應用程序提供了新的機會。
此外, Vulkan 視頻是業界首個跨平臺視頻加速 API ,支持跨多個操作系統和硬件供應商的軟件可移植性,這對于尋求擴展其富媒體應用程序和引擎市場范圍的開發人員來說是一個重大的勝利。

Vulkan 視頻發展
NVIDIA 一直是 Khronos Vulkan 視頻開發的驅動力。 Vulkan Video extension specifications for fully accelerated H.264 and H.265 decode 于 2022 年 12 月發布, NVIDIA 當天發布了適用于 Windows 和 Linux 的測試版驅動程序。
LunarG 剛剛發布了新版本的開源 Vulkan SDK Vulkan SDK 1.3.239 。此版本集成了使用 Vulkan 視頻擴展所需的所有組件,包括 SDK 驗證層內的支持,這是為開發人員簡化 Vulkan Video 開發的重要一步。
Vulkan 視頻的設計具有靈活的擴展性,通過利用通用“核心”擴展來適應各種現有和未來的視頻格式,從而實現額外的編解碼器特定解碼和編碼擴展。 NVIDIA 致力于繼續與 Khronos 合作,以擴展 Vulkan 視頻對流行編解碼器的支持,包括 H.264 和 HEVC 編碼,以及對 AV1 的完全解碼和編碼支持,并提供加速驅動程序。
作為該開發過程的下一步,所有開發人員都被邀請就 H.264 和 HEVC 編碼的 Khronos 草稿 Vulkan 視頻擴展提供反饋,如下所示:
有關如何提供反饋,請參閱文章末尾的資源部分。
NVIDIA 的視頻編解碼器 API
NVIDIA 已通過 NVIDIA Video Codec SDK 在 GPU 上提供硬件加速視頻處理十多年。這是一組全面的 API 、高性能工具、示例和文檔,用于 Windows 和 Linux 上的硬件加速視頻編碼和解碼。
視頻編解碼器 SDK API 提供了對視頻加速的高級訪問,簡化了許多常見用例的應用程序開發。視頻編解碼器 SDK 還展示了最新的 NVIDIA 視頻處理技術。例如,視頻編解碼器 SDK 12.0 將支持 NVIDIA Ada Lovelace architecture 中跨多個編碼器的拆分編碼,從而支持 AV1 和 HEVC 格式的實時 8k60 編碼。
NVIDIA 還支持通過 Microsoft 的 DirectX Video (一種面向 Windows 開發人員的跨供應商 API )進行 GPU 加速編碼和解碼。與 NVIDIA 視頻編解碼器 SDK 不同, DirectX 視頻和 Vulkan 視頻都是低級 API 。雖然視頻編解碼器 SDK 為 C ++開發人員提供了自動化,但 DirectX 視頻和 Vulkan 視頻可以對數據流如何通過視頻加速硬件進行路由和處理進行精細調整。
無論您喜歡 DirectX 還是 Vulkan ,您都可以使用自己選擇的語言,將靈活的 GPU 加速視頻編碼和解碼與其他 GPU 加速(如 3D 和 AI )相結合。
低級 Vulkan 視頻擴展對流行的開源流媒體框架(如 GStreamer 和 FFmpeg )的開發人員也很有吸引力,這兩個框架都被主動移植到 Vulkan Video 。 Vulkan 的跨平臺可用性將使這些框架能夠跨多個平臺加速 GPU 處理,而無需移植到多個專有視頻 API 。
視頻編解碼器 SDK 、 DirectX 視頻和 Vulkan 視頻為 GPU 加速視頻工作流提供了補充支持。 NVIDIA 將繼續支持這三項,為開發人員提供使用最適合其需求的 API 的選項。
Vulkan NVIDIA 的視頻支持
具有 Vulkan 視頻支持的 NVIDIA Vulkan 1.3 drivers 預計將于 2023 年 2 月離開測試版,并在通用版驅動程序中發布。 NVIDIA 對 Vulkan 視頻的支持不僅限于優化的驅動程序,還包括工具和示例代碼,以幫助開發人員充分發揮 Vulkan Video 的潛力。
NVIDIA Nsight Developer Tools 是一組調試器、分析器和優化器,它們支持使用許多圖形 API (包括 Vulkan )對應用程序進行性能調整。預計 2023 年 2 月將發布 2022.7 版本, NVIDIA Nsight Graphics 幀調試器將明確支持 Vulkan 視頻,使開發人員能夠快速瀏覽導致解碼視頻幀的所有事件,并瀏覽相應的資源分配。

此外, NVIDIA Nsight Systems 系統分析器將能夠解析 Vulkan 視頻解碼隊列的特定工作負載,從而深入了解應用程序上下文中的處理瓶頸。

Vulkan 視頻擴展提供了強大的低級別靈活性,并且可以為開發人員提供學習曲線。為了幫助應用程序快速利用 Vulkan 視頻, NVIDIA 將 Vulkan Video 視頻解碼和編碼示例應用程序添加到開源示例庫中,展示了擴展如何與圖形和視頻解碼計算隊列高效交互。
訪問 GitHub 上的 nvpro-samples/vk_video_samples ,查看一個示例,該示例封裝了如何從輸入文件解析視頻流,采用硬件加速解碼,并將解碼后的流逐幀傳遞到圖形處理和演示中,所有這些都由 Vulkan API 處理。
這些 Vulkan 視頻示例應用程序可以用作可定制的庫,使開發人員能夠使用更高級別的抽象來提高編碼效率,同時在需要時仍然直接利用 Vulkan Video 低級功能。
Vulkan 視頻資源
如果您有興趣了解 Vulkan 視頻的更多信息,請參閱 An Introduction to Vulkan Video 和 Khronos Finalizes Vulkan Video Extensions for Accelerated H.264 and H.265 Decode 。您還可以下載新發布的具有 Vulkan 視頻支持的 LunarG Vulkan SDK 。
想開始分析 Vulkan 基于視頻的應用程序嗎?檢查 Optimizing Vulkan 1.3 Applications with N V I D A Nsight Graphics and NVIDIA Nsight Systems 和 NVIDIA Nsight Systems – Vulkan Trace 。作為 Vulkan API 的擴展,分析 Vulkan 視頻符合這些最佳實踐。您還可以了解有關 Vulkan at NVIDIA. 的更多信息
最后, NVIDIA 的 Tony Zlatinski 將于 2 月 7 日至 9 日在慕尼黑舉行的 Khronos Group 的 Vulkanized 2023 活動上,就 Vulkan 視頻的設置和使用進行現場演示。
隨著 Vulkan 視頻的不斷發展,我們重視您的反饋。我們鼓勵您使用 Vulkan Video Developer Survey 提供您希望在 Vulkan 視頻中看到的功能的輸入。您也可以通過 NVIDIA Vulkan Developer Forum 或 NVIDIA Vulkan Developer Discord Channel 聯系我們。
Khronos 和 Vulkan 是 Khronos Group , Inc.的注冊商標。
?