NVIDIA Optical Flow SDK 4.0 現已推出,使您能夠在 NVIDIA Ada 架構上使用 NvOFFRUC 充分利用新的 NVIDIA Optical 加速器。
NVIDIA Ada Lovelace 架構上的光流
從 NVIDIA Turing 架構開始, NVIDIA GPU 有專用硬件用于一對幀之間的光流計算。由于應用程序開發人員和研究人員的持續反饋, NVIDIA 繼續投資改進 NVIDIA Ampere 架構和 NVIDIA Ada Lovelace 架構中的光流硬件引擎。
顯著的性能改進
光流算法需要一定的預處理和后處理步驟來提高流向量的質量。
在 NVIDIA Turing 和 NVIDIA Ampere 架構一代 GPU 中,大多數算法使用計算引擎來執行所需任務。因此,當計算引擎工作負載較高時, NVIDIA Optical 加速器( NVOFA )的性能可能會受到影響。
在 NVIDIA Ada 一代 GPU 中,這些算法中的大多數都被轉移到 NVOFA 中的專用硬件上,從而顯著減少了對計算引擎的依賴。
此外, NVIDIA Ada 一代 GPU 還帶來了其他一些與減少驅動程序和硬件之間交互開銷相關的優化。這提高了 GPU 上各種硬件引擎之間的整體性能和上下文切換。
通過這些更改,與 NVIDIA Ampere 架構 NVOFA 相比, NVIDIA Ada Lovelace 架構 NVOFA 的速度提高了約 2 倍。
質量改進
根據前幾代 NVOFA 的反饋,硬件中有幾個質量改進。使用相同的預設,與 NVIDIA Ampere 架構 GPU 相比,您可以看到質量提高 10-15% (在 KITTI2015 數據集上測試)。
有關詳細信息,請參見 1.4 NVOFA 質量和性能?。
Optical SDK 4.0
NVIDIA Optical SDK 使您能夠訪問 NVOFA 功能。 NVIDIA Optical SDK 是一組光流 C API 、可重用 C ++包裝類和一組示例應用程序。這些 API 和 C ++包裝器類有助于 NVOFA 的編程,以有效計算一對圖像之間的光流。
Optical SDK 4.0 具有以下增強和功能:
- 外部提示支持
- NVIDIA Optical 輔助幀速率上轉換( NvOFFRUC )
外部提示支持
當使用低進化圖像生成提示或從其他來源(如游戲引擎)獲得提示時, NVOFA 可以進一步細化提示以提高流向量的質量。
雖然外部提示支持已經通過 C-API 提供,但早期版本的 SDK C ++包裝類中缺少支持。
Optical SDK 4.0 在 C ++類中添加了必要的支持,示例應用程序 AppOFCuda 中演示了外部提示的使用。提示格式與輸出流向量格式相同:NV_OF_FLOW_VECTOR
結構的數組。每個陣列元素以光柵掃描順序表示對應塊的運動矢量。
AppOF CUDA 接受 Middlebury flo format 中的提示,但在將其傳遞給 NVOF API 之前,將其轉換為所需的格式(NV_OF_FLOW_VECTOR
結構的數組)。 NVOFA 在提供外部提示時優先考慮這些提示;你應該提供合理的質量提示。
NVIDIA Optical 輔助幀速率上轉換
幀速率上轉換( FRUC )是一種通過將內插幀插入較低幀速率視頻中來生成較高幀速率的視頻的技術。這種高幀率視頻顯示了幀間運動的平滑連續性,提高了視頻的視覺質量。

NvOFFRUC 庫公開了獲取兩個連續幀并在其間生成插值幀的 API 。插值是即時的,不必精確地位于兩幀的中間:可以任意指定。有關詳細信息,請參閱 NVOFA FRUC Programming Guide 。
這些 API 可用于任何視頻內容的上轉換。在內部,庫使用 NVOFA 硬件引擎和 CUDA 計算核心。因此,與純軟件方法相比,使用 NvOFFRUC 庫的幀插值要快得多。
有關詳細信息,請參見 AV1 Encoding and FRUC: Video Performance Boosts and Higher Fidelity on the NVIDIA Ada Lovelace Architecture 。
?