• <xmp id="om0om">
  • <table id="om0om"><noscript id="om0om"></noscript></table>
  • 3 月 19 日下午 2 點,鎖定 NVIDIA AI 網絡中文專場。立即注冊觀看
    計算機視覺/視頻分析

    采用分幀編碼和 NVIDIA Ada Lovelace 架構的 8K60 視頻編碼

    ?

    得益于攝像頭和顯示技術的進步,現在可以在 8K 分辨率和每秒 60 幀 (FPS) 下截取視頻片段和玩游戲。RED Digital Cinema、Nikon 和 Canon 等主要的領先多媒體公司已經為消費者和專業市場推出了 8K60 攝像頭。

    在顯示器方面,8K60 采用最新的 HDMI 2.1 標準,現已得到廣泛應用,支持游戲顯示器和智能電視。雖然 8K60 提供 驚人的畫質和清晰度,但在傳輸和存儲時消耗更多數據會帶來巨大的成本。

    因此,快速編解碼器在彌合傳感器和顯示器之間的差距方面至關重要。為了促進 8K60 的廣泛應用,NVIDIA Ada Lovelace GPU 架構提供了 NVENC 加速視頻編碼性能的引擎,同時保持高畫質。(NVIDIA RTX 4090 和 4080 分別提供兩個和三個 NVENC,而 NVIDIA RTX 6000 Ada Lovelace (L40) 也配備了 NVENC。)

    實際上,與前幾代產品相比,使用單個 GPU 時,這可以將編碼性能提高一倍或三倍,從而實現 8K60 視頻編碼及以上。

    本文將介紹如何使用分幀編碼 (SFE) 技術利用 NVIDIA Ada Lovelace 架構中的多個可用 NVENC 來實現 8K60 視頻編碼性能。我們將探討這種 SFE 技術如何在 4K 和 8K 分辨率下工作,以及如何通過 NVENCODE API 啟用該技術。最后,我們將介紹一些基準測試,這些基準測試顯示了這種技術在實際應用中的巨大性能優勢。

    分幀編碼

    SFE 是一種技術,它通過分割幀并使用 NVIDIA Ada Lovelace GPU 中存在的多個 NVENC 引擎對每個部分幀進行編碼,從而在對單個視頻序列進行編碼時能夠提高效率。這一技術已集成在 NVIDIA 視頻編解碼器 SDK 12.0 中。SFE 能夠在可用的 NVENC 中有效地分割編碼工作(圖 1)。然而,到目前為止,SFE 是基于編碼預設、調整信息和分辨率隱式啟用的,以支持 HEVC 或 AV1 中的 8K 實時編碼。(請注意,H.264 不支持 8K。)如需了解更多詳情,請參閱 借助 AV1 和 NVIDIA Ada Lovelace 架構提高視頻質量和性能

    Diagram of two-way split-frame encoding with NVENCODE API, NVENC 0, and NVENC 1 (top to bottom).
    圖 1.雙向分幀編碼

    通過 NVIDIA Video Codec SDK 12.1,您可以啟用或禁用 SFE 功能。這意味著 SFE 現在可以在不受分辨率、預設和調整信息限制的情況下,利用 NVIDIA Video Codec SDK 12.1 中的兩個甚至三個 NVENC,在 NVIDIA RTX 4090NVIDIA RTX 6000 Ada 架構 上使用。這使得應用程序在使用雙路或三路 SFE 對單個視頻序列進行編碼時,能夠將編碼性能提高一倍甚至三倍。在對 8K 視頻進行編碼時,這種性能提升尤其重要,因為這是一個對性能要求極高的應用場景。

    4K 和 8K 分辨率下的 SFE

    SFE 的應用方式可能會因分辨率和所選的視頻編解碼器而異。在關閉 SFE 的情況下使用 HEVC 時,只需使用單個切片。在使用雙向或三向 SFE 時,會分別使用兩個或三個切片。這些切片可水平地分離每幀。它適用于 4K 和 8K 分辨率(圖 2)。此外,在對分辨率高達 4K 的視頻進行編碼時,這同樣適用于 AV1.但是,AV1 使用圖塊而不是切片來創建這些獨立的幀分區。

    Three images showing generated frame partitions when encoding HEVC at 4K and 8K and AV1 at 4K for the several SFE configurations. HEVC 4K/8K and AV1 4K with no SFE (left); HEVC 4K/8K and AV1 4K with two-way SFE (center); HEVC 4K/8K and AV1 4K with three-way SFE (right).
    圖 2.在對幾種 SFE 配置進行 4K 和 8K HEVC 編碼以及 4K AV1 編碼時生成的幀分區:不使用 SFE 的 HEVC 4K/8K 和 AV1 4K (左);使用雙向 SFE 的 HEVC 4K/8K 和 AV1 4K (中心);使用三路 SFE 的 HEVC 4K/8K 和 AV1 4K (右)

    使用 AV1 編碼 8K 視頻時,請考慮標準定義的最大圖塊分辨率為 4096 x 2304 像素。這意味著在編碼 8K 視頻時,每個幀將被拆分為四個圖塊,每個圖塊的分辨率為四分之一(3840 x 2160 像素)。使用 SFE 時,為了實現與 HEVC 相同的性能優勢,每個圖塊將進一步水平拆分,分別為 8 個或 12 個圖塊,雙向和三向 SFE (圖 3)。

    Three images showing generated frame partitions when encoding AV1 at 8K for the several SFE configurations: AV1 8K with no SFE (left); AV1 8K with two-way SFE (center); AV1 8K with three-way SFE (right).
    圖 3.為多種 SFE 配置對 AV1 進行 8K 編碼時生成的幀分區:無 SFE 的 AV1 8K (左);雙路 SFE 的 AV1 8K (中心);三路 SFE 的 AV1 8K (右)

    表 1 總結了每個編解碼器和輸入視頻分辨率所需的部分幀數和分辨率。

    編解碼器 視頻分辨率 部分幀數和分辨率
    無 SFE 雙路 SFE 三路 SFE
    HEVC 4K 分辨率 1x 3840 x 2160 2x 3840 x 1080 3x 3840 x 720
    8K 分辨率 1x 7680 x 4320 2x 7680 x 2160 3x 7680 x 1440
    AV1 4K 分辨率 1x 3840 x 2160 2x 3840 x 1080 3x 3840 x 720
    8K 分辨率 4 臺 3840 x 2160 顯示器 8x 3840 x 1080 12x 3840 x 720
    表 1.4K 和 8K 視頻編碼時的部分幀數和每個編解碼器的相應分辨率匯總

    啟用分幀編碼

    隨著 NVIDIA Omniverse 開發者套件的 API 更新,視頻編解碼器 SDK 12.1 在最新的 NVENCODER API 標頭中引入了 NV_ENC_SPLIT_ENCODE_MODE。這一功能可以實現對 SFE(分割幀編碼)的控制,如表 2 所示。現在,使用隱式或顯式模式配置 SFE 變得更加簡單。通過 NV_ENC_SPLIT_AUTO_MODENV_ENC_SPLIT_AUTO_FORCED_MODE,您可以輕松地采用 SFE 的隱式模式。如需了解更多詳情,請參閱借助 AV1 和 NVIDIA Ada Lovelace 架構提高視頻質量和性能

    其余選項是指顯式 SFE 配置。這些選項包括強制禁用 SFE、雙向或三路。要強制禁用 SFE,需要使用具有適當數量 NVENC 引擎的 NVIDIA GPU.

    NV_ENC_SPLIT_ENCODE_MODE SFE 類型 說明
    NV_ENC_SPLIT_AUTO_MODE (0) 自動模式(默認) 雙路 SFE 將根據輸入視頻分辨率和編碼參數隱式觸發
    NV_ENC_SPLIT_AUTO_Forced_MODE (1) 強制自動模式
    NV_ENC_SPLIT_Two_Forced_MODE (2) 強制雙向 SFE 無論輸入視頻和編碼參數如何,都將使用相應的 SFE 配置
    NV_ENC_SPLIT_THREE_Forced_MODE (3) 強制三路 SFE
    NV_ENC_SPLIT_DISABLE_MODE (15) 強制取消 SFE
    表 2.選定的 SFE 類型和描述NV_ENC_SPLIT_ENCODE_MODE選項

    最新的視頻編解碼器 SDK 編碼示例AppEncMultiInstance還重點介紹了如何向應用程序添加顯式 SFE 控制。

    性能和壓縮效率基準測試

    測試了多種配置和輸入 8K 視頻,如表 3 所示。

    基準測試配置
    GPU GPU RTX 6000 Ada 生成(3 個 NVENC)
    輸入視頻 7 個視頻(4 個游戲視頻和 3 個自然視頻)
    編碼器 HEVC 和 AV1
    預設 P1 (最快)、P4 (中等)和 P7 (最慢)
    調優信息 低延遲 (LL) 和高質量 (HQ)
    比特率 15、20、60、150 和 250 Mbps
    表 3.基準測試配置摘要

    執行了兩種類型的基準測試:

    轉碼性能:轉碼的目的是為了盡可能減少系統瓶頸(包括文件 I/O、CPU 與 GPU 之間的內存復制)的影響。為了測試轉碼性能,原始的 8K 視頻被預先以非常高的比特率編碼。在轉碼過程中,NVDEC 負責視頻解碼。而在沒有使用分割、雙向 SFE 和三路 SFE 的情況下,視頻由一到三個 NVENC 進行重新編碼。HEVC 和 AV1 的性能結果分別展示在圖 4 和圖 5 中。

    壓縮效率損失:通過在多個 NVENC 上拆分編碼工作,預計會產生一定的壓縮效率損失。為了測量這種損失,我們使用了 BD-RATE 指標,在多個基準配置中比較了單一編碼、雙向 SFE 和三路 SFE 之間的壓縮效率。該指標反映了在相同目標質量下的平均壓縮效率損失。在這些基準測試中,目標質量指標為 PSNR。HEVC 和 AV1 的壓縮效率損失結果分別展示在圖 6 和圖 7 中。

    Bar chart showing average performance benchmarking results for 8K transcoding using HEVC.
    圖 4.使用 HEVC 進行 8K 轉碼的平均性能基準測試結果
    Bar chart showing average performance benchmarking results for 8K transcoding using AV1.
    圖 5.使用 AV1 進行 8K 轉碼的平均性能基準測試結果

    使用雙向 SFE 時,HEVC 和 AV1 的平均性能可提升約 1.8 倍。三路 SFE 可實現 HEVC 高達 2.95 倍、AV1 高達 2.31 倍的性能提升。在實踐中,這可通過 NVIDIA RTX 6000 Ada Generation 實現 8K60 視頻編碼,同時使用 HEVC 和 AV1,并在中等預設 (P4) 下提供 LL 和 HQ 調優信息。

    假設使用一到三個 NVENC 和一個 NVDEC,則 NVDEC 可能會成為轉碼 8K 時的瓶頸。因此,最快的預設 (P1) 可能會導致 FPS 平均最高達到約 120 FPS.這是單個 NVDEC 在 8K 下實現的平均最大性能。

    只要 NVDEC 不是瓶頸,您就能看到更好的擴展效果。對于速度較慢的預設,例如 P4 和 P7,情況就是如此,與 P1 相比,性能擴展效果要好得多。

    Chart showing average compression efficiency penalty results for 8K encoding using HEVC.
    圖 6.使用 HEVC 進行 8K 編碼的平均壓縮效率損失結果
    Chart showing average compression efficiency penalty results for 8K encoding using AV1.
    圖 7.使用 AV1 進行 8K 編碼的平均壓縮效率損失結果

    通常情況下,使用 BD-RATE (PSNR) 測量質量時,雙向 SFE 的壓縮效率損失預計不會超過 2%,三向 SFE 的壓縮效率損失預計不會超過 4%.對于總部調整信息而言,此損失比 LL 更明顯。此外,根據執行的基準測試,與 AV1 相比,使用 HEVC 時,此損失略為明顯。

    盡管與性能權衡相比,這種壓縮效率損失仍然相對較低,但要由用戶來確定所需的用例是否受益于更高的性能或壓縮效率。無論如何,NVENCODE API 不僅可以完全控制 8K 的 SFE,而且還可以控制更低的分辨率。

    總結

    分幀編碼 (SFE) 是一項革命性功能,它能在 8K60 及更高分辨率下實現視頻編碼。此功能讓用戶能夠利用 NVIDIA Ada Lovelace 架構 GPU 中的多個 NVENC 強大功能,對單個視頻序列進行編碼。本文探討了雙向 SFE(使用兩個 NVENC)和三路 SFE(使用三個 NVENC)的性能優勢。NVIDIA 視頻編解碼器 SDK 提供了對 SFE 的顯式控制,以便進行優化定制。

    ?

    +1

    標簽

    人人超碰97caoporen国产