十多年來, NVIDIA GPU 一直采用稱為NVENC 和 NVDEC。它們具有高度并行化的架構,支持流行的編解碼器格式,并提供對 GPU 存儲器的直接訪問,以優化編碼和解碼操作。
GPU – 加速視頻意味著將視頻處理卸載到 NVENC 和 NVDEC ,減少 CPU 周期,并利用更優化的硬件單元。為了啟用 GPU 加速, NVIDIA 提供Video Codec SDK:支持高性能編碼和解碼的豐富 API 。
去年, NVIDIA 推出了Ada Lovelace 架構,采用新的第八代 NVENC 。視頻編解碼器 SDK 已更新以支持AV1 encode在 NVIDIA Ada Lovelace 上,以及拆分編碼,以同時利用多個 NVENC 的功率。
Video Codec SDK 12.1是最新版本,現已上市。這篇文章重點介紹了 12 . 1 版本中支持的新功能,以及如何使用它們來增強視頻處理用例,如 NVIDIA GPU 上的內容創建和流媒體。
顯式拆分幀編碼
使用分割編碼,輸入幀被分割,每個部分由芯片上的多個 NVENC 并行處理,與順序編碼相比,這導致了顯著的加速。分割編碼最初默認在 HEVC 和 AV1 的 4K 和 8K 分辨率的預定 HQ 和 LL 預設上實現。
在視頻編解碼器 SDK 12 . 1 中,您可以使用標志控制分割編碼的實現:
- 禁用該標志將產生原始默認功能,該功能在 4K 和 8K 分辨率的預定預設下啟用。
- 啟用該標志可在所有分辨率和預設之間實現拆分編碼。
您還可以根據 GPU 上的 NVENC 數量控制兩個或三個 NVENC 之間的拆分。有關詳細信息,請參閱GPU matrix.
? | 默認拆分編碼 對于 4K 、 8K |
在所有預設和分辨率上拆分編碼 |
拆分編碼 API 標志=已啟用 | 是,對于某些預設 | 對 |
拆分編碼 API 標志=已禁用 | 是,對于某些預設 | 不 |
在Video Encoding 8K60 and Beyond with Ada LovelaceGTC 會話。
用于 H.264 、 HEVC 和 AV1 的 NVENC 低級 API
視頻編解碼器 SDK 12.1 為 H.264 、 HEVC 和 AV1 編碼器提供了更多的低級別 API ,以控制硬件編碼器的內部狀態。這些 API 對于希望對編碼質量進行精細控制的應用程序非常有用。
- 迭代編碼:迭代編碼使您能夠凍結編碼器的自動狀態前進。然后,您可以對同一幀進行重新編碼,每次都使用不同的 delta QP 。 NVENC 存儲所有可能的新狀態,使您能夠停止迭代,并基于任何一次迭代手動強制前進。
- ReCon:您可以在硬件編碼器的重新配置循環中訪問更高質量的重建幀。 NVENC 還支持行和塊級別的 QP 和位計數統計。
- 外部展望:此 API 為前瞻功能提供了增強的控制。 API 允許您決定 lookahead 傳遞的縮放比例。默認值為 1 / 16th 決議
迭代編碼、重構和外部前瞻由Beamr’s Content Adaptive Bit Rate( CABR )庫使用,它與 NVENC 聯合工作,以創建完全符合標準的比特流。對于給定的感知質量,這些比特流具有盡可能低的比特率,這是通過在沒有任何可見質量退化的情況下找到每幀的最大壓縮級別來實現的。
將 CABR 庫與視頻編解碼器 SDK 一起使用可以實現各種用例,包括以下用例:
- 編碼器優化:對于現有的 NVENC 用戶, CABR 可以使用相同的配置和比特率設置來生成與原始 NVENC 編碼相同的永久質量的壓縮視頻。與原始 NVENC 壓縮相比, CABR 優化的視頻可以節省 10-30% 。
- 編碼器現代化:可以在不指定任何比特率的情況下使用 CABR-NVENC 優化。在這種情況下,該算法產生與原始視頻在感知上相同質量的壓縮視頻,壓縮增益高達 50% 。該流使其能夠從編解碼器到編解碼器進行代碼轉換,并在比特流之間保持相同的質量。
比特率節省可能因文件和場景而異,但通常平均為 30%-40% 。 CABR 視頻的這些節省減少了存儲需求,大大降低了數百萬流必須以高質量存儲的成本。
在底層編碼相對于本機分辨率已經具有攻擊性的情況下,可能不可能在不降低質量的情況下進一步降低比特率。另一方面,在智能手機上的用戶生成內容( UGC )等情況下,使用保守的比特率來保證質量, CABR 可以實現高達 60%-70% 的節約。這些優化還通過最小化帶寬需求來降低內容交付網絡( CDN )成本。
在與 NVENC 集成之前, CABR 只能通過離線處理實現。現在,在 NVIDIA GPU 的支持下, CABR-NVENC 實時運行,將其用于優化現場視頻創作服務。
使用 CABR-NVENC 進行視頻創作
Wochit是一個基于云的視頻內容創建解決方案,提供了組織用于大規模制作專業視頻的精簡工具。他們最近推出了Wochit Wizard,一個人工智能驅動的、基于提示的視頻創建工具。 Beamr 在 NVIDIA GPU 上的 CABR 幫助 Wochit 建立了新的人工智能服務,大大節省了存儲和交付成本。
“ 10 多年來,我們一直在 GPU 上對視頻進行編碼、解碼和轉碼;為內容創建提供了一個強大的平臺,每年處理 100 萬個視頻。 Beamr 的 CABR 技術使我們能夠在保持質量的同時顯著減少文件大小。通過 CABR 的端口連接 NVIDIA GPU,我們現在可以實時利用它,而不是冗長而昂貴的離線處理。我們很高興能夠在 NVIDIA GPU 上使用 Beamr 的解決方案來探索人工智能視頻創作的新領域,并增強我們的客戶體驗!”–Dror Ginzberg , Wochit 的聯合創始人兼首席執行官。
為 NVIDIA GPU 優化云流
V-Nova一直在與 NVIDIA 合作優化Low Complexity Enhancement Video Coding( LCEVC ),這是 MPEG 在 NVIDIA GPU 上推出的新視頻標準。
LCEVC 指定增強層,該增強層與基本編碼流相結合以產生增強視頻流。 LCEVC 特別適用于云游戲和 VR / XR 應用。在這些用例中,內容由云中的游戲引擎渲染,編碼為視頻,并通過標準 IP 連接發送到輕型、節能的客戶端設備。
LCEVC 能夠將必要的比特率降低到超過單獨使用 AVC 、 HEVC 或 AV1 可能的比特率,同時保持最小延遲,減少延遲抖動,并且具有低計算負載。
V-Nova 與 NVIDIA 合作,優化了 NVIDIA GPU 上的 LCEVC ,支持解碼端的低端設備(手機上的 1080p60 低延遲解碼和 XR 耳機上的 4Kp90 )。為了在 LCEVC GPU 處理和渲染操作之間產生有限的爭用, LCEVC 會在Tensor Cores可用時使用它。
這與云渲染、超低延遲、 XR 流媒體的使用情況尤其相關,在這種情況下,無線分發到 XR 耳機需要低于 25 Mbit / s 的傳輸。圖 3 顯示了在 25 Mbit / s 時,與 LCEVC 增強的 HEVC 相比的 HEVC 。
在延遲方面,目的是避免任何類型的緩沖,并在一幀內保持 3680 × 1920 立體視頻的編碼時間。大多數編碼階段都移到了 GPU 上,與渲染引擎和 NVENC 緊密相連。
LCEVC 還利用了 ReCon ,這是一種新的視頻編解碼器 SDK 12 . 1 功能,可以從 NVENC 訪問重建的幀。這消除了 NVDEC 階段,每幀產生約 5 毫秒的編碼時間。總體而言,與 CPU 實現相比, NVIDIA GPU 上的 LCEVC 實現了 10 倍的加速。
視頻編解碼器 SDK 12 . 1 入門
有關新視頻功能的更多信息,請參閱Improving Video Quality and Performance with AV1 and NVIDIA Ada Lovelace Architecture.
?