精品国产人成在线_亚洲高清无码在线观看_国产在线视频国产永久2021_国产AV综合第一页一个的一区免费影院黑人_最近中文字幕MV高清在线视频

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

NVIDIA SDK 3.0新硬件功能介紹

星星科技指導員 ? 來源:NVIDIA ? 作者:NVIDIA ? 2022-04-20 16:31 ? 次閱讀

NVIDIA 圖靈架構引入了一種新的硬件功能,用于以非常高的性能計算一對圖像之間的光流。 NVIDIA 光流 SDK 公開了使用這種光流硬件(也稱為 NVOFA )加速應用程序的 API 。我們很高興地宣布光流 SDK 3.0 的可用性具有以下新功能:

DirectX 12 光流 API

通過單個 API 的前后向光流

全球流動矢量

DirectX 12 光流 API

DirectX 12 是一個來自 Microsoft 的低級編程 API ,與它的前身 DirectX 11 相比,它減少了驅動程序開銷。 DirectX 12 為開發人員提供了更大的靈活性和細粒度的控制。開發人員現在可以利用 DirectX 12 中的低級編程 API 并優化其應用程序,以提供比早期 DirectX 版本更好的性能—同時,客戶端應用程序本身必須負責資源管理、同步, DirectX 12 在游戲和其他圖形應用程序中迅速發展。

光流 SDK 3.0 支持 DirectX 12 應用程序使用 NVIDIA 光流引擎。計算出的光流可用于提高游戲和視頻中的幀速率,以獲得更平滑的體驗或用于目標跟蹤。為了提高幀速率, F rame R ate U p C onversion ( FRUC )技術通過在原始幀之間插入插值幀來使用。插值算法使用幀對之間的流來生成中間幀。

光流硬件的所有代支持 DirectX 12 光流接口。光流 SDK 包包含頭( S )、演示使用的示例應用程序、可根據需要重新使用或修改的 C ++包裝類和文檔。用于訪問光流硬件的所有其他組件都包含在 NVIDIA 顯示驅動程序中。 Windows 20H1 或更高版本的操作系統支持 DirectX 12 光流 API 。

除了顯式同步之外, directx12 光流 API 的設計與 SDK 中已有的其他接口( CUDA 和 DirectX 11 )非常接近, DirectX 12 光流 API 由初始化、流量估計和銷毀三個核心功能組成。

ypedef NV_OF_STATUS(NVOFAPI* PFNNVOFINIT) (NvOFHandle hOf, const NV_OF_INIT_PARAMS* initParams);

typedef NV_OF_STATUS(NVOFAPI* PFNNVOFEXECUTED3D12) (NvOFHandle hOf, const NV_OF_EXECUTE_INPUT_PARAMS_D3D12* executeInParams, NV_OF_EXECUTE_OUTPUT_PARAMS_D3D12* executeOutParams);

typedef NV_OF_STATUS(NVOFAPI* PFNNVOFDESTROY) (NvOFHandle hOf);

初始化和銷毀 API 在所有接口上都是相同的,但在 DirectX 12 和其他接口(即 DirectX 11 和 CUDA )之間執行 API 是不同的。盡管在 DirectX 12 中傳遞給 executeapi 的大多數參數與其他兩個接口中的參數相同,但在功能上還是存在一些差異。 DirectX 11 和 CUDA 接口中的同步由操作系統運行時和驅動程序自動處理。但是,在 DirectX 12 中,需要有關圍欄和圍欄值的附加信息作為執行 API 的輸入參數。這些圍欄對象將用于同步 CPU ? GPU 和 GPU ? GPU 操作。有關詳細信息,請參閱光流 SDK 附帶的編程指南。

DirectX 12 中的緩沖區管理 API 接口也需要 fence 對象來進行同步。

所有接口的光流輸出質量相同。與其他兩個接口相比, DirectX 12 的性能應該非常接近。

正反向光流

沒有一種光流算法能給出 100% 的準確流量。在閉塞區域,流動通常是扭曲的。有時, NVOA 提供的成本也可能不代表流動的真實可信度。通常采用的一個簡單檢查是比較向前和向后流動。如果正向流和反向流之間的歐氏距離超過閾值,則該流可以標記為無效。

為了估計兩個方向上的流,客戶機必須調用 Execute API 兩次:一次調用輸入和引用圖像,第二次調用在反轉輸入和引用圖像之后。像這樣兩次調用 Optical Flow Execute API 可能會由于上下文切換、線程切換等開銷而導致性能不佳。 Optical Flow sdk3 。 0 公開了一個新的 API ,以便在單個 Execute 調用中生成雙向流。可以通過在初始化中設置 NV_OF_INIT_PARAMS::predDirection to NV_OF_PRED_DIRECTION_BOTH 并在 NV_OF_EXECUTE_OUTPUT_PARAMS/NV_OF_EXECUTE_OUTPUT_PARAMS_D3D12::bwdOutputBuffer, NV_OF_EXECUTE_OUTPUT_PARAMS/NV_OF_EXECUTE_OUTPUT_PARAMS_D3D12::bwdOutputCostBuffer 。 中提供接收反向流和/或開銷所需的緩沖區來啟用此功能

一旦在兩個方向上生成流,客戶端應用程序就可以比較兩個方向的流向量,根據適當的標準(例如,向前和向后流向量之間的歐幾里德距離)丟棄不準確的流向量,并使用孔填充算法來填充這些丟棄的流向量。

注意,由于一些優化, FB 流的輸出質量可能不同于單向流。

演示 FB flow API 編程和一致性檢查的示例代碼:

// Initialization of API
NV_OF_INIT_PARAMS initParams = { 0 };
...
initParams.predDirection = NV_OF_PRED_DIRECTION_BOTH;
...
NvOFAPI->nvOFInit(hNvOF, &initParams);
// Estimation of forward and backward flow
NV_OF_EXECUTE_INPUT_PARAMS executeInParams = { 0 };
...
NV_OF_EXECUTE_OUTPUT_PARAMS executeOutParams = { 0 };
...
executeOutParams.outputBuffer = forwardFlowBuffer;
executeOutParams.outputCostBuffer = forwardFlowCostBuffer;
executeOutParams.bwdOutputBuffer = backwardFlowBuffer;
executeOutParams.bwdOutputCostBuffer = backwardFlowCostBuffer;

NvOFAPI->nvOFExecute(hNvOF, &executeInparams, &executeOutParams)


// Invalidating flow vectors
for (int y = 0; y < height; y++) {
    for (int x = 0; x < width; x++) {
        // read forward flow vector
        float mvx = GetFlowX(forwardFlowBuffer, x, y);
        float mvy = GetFlowY(forwardFlowBuffer, x, y);

        // derive the corresponding position in the backward flow (assuming 1x1 grid size)
        // and read the backward flow vector
        int x2 = x + mvx;
        int y2 = y + mvy;
        if (x2 < 0 || x2 > width - 1 || y2 < 0 || y2 < height - 1)
        {
            SetFlowInvalid(forwardFlowBuffer, x, y);
            continue;
        }
        float mvx2 = -1 * GetFlowX(backwardFlowBuffer, x2, y2);
        float mvy2 = -1 * GetFlowY(backwardFlowBuffer, x2, y2);

        // mark flow vector as invalid if the distance is greater than a threshold
        if (((mvx - mvx2) * (mvx - mvx2) + (mvy - mvy2) * (mvy - mvy2)) > thresh) {
            SetFlowInvalid(forwardFlowBuffer, x, y);
        }
    }
}

全球流量估算

視頻序列或游戲中的全局流是由攝影機平移運動引起的。全局流估計是一個重要的工具,廣泛應用于圖像分割、視頻拼接或基于運動的視頻分析應用中。

全局流矢量也可以啟發式地用于計算背景運動。一旦估計出背景運動,它就可以用來填充遮擋區域中的流矢量,也可以用來處理插值幀中扭曲像素的碰撞。

全局流量是基于發生頻率和其他一些啟發式算法,在前向流矢量上計算的。

為了能夠生成全局流,初始化 API 需要設置標志 初始化參數的 NV \ u :: enableGlobalFlow ,并在 executeapi 中提供額外的緩沖區 NV _ OF _ EXECUTE _ OUTPUT _ PARAMS / NV _ OF _ EXECUTE _ OUTPUT _ PARAMS _ D3D12 ::全局流緩沖區 。

關于作者

Konda Raju 是 NVIDIA 多媒體驅動團隊的高級系統軟件工程師。他從事 NVIDIA 光流驅動器和應用程序編程接口設計。此前,他致力于 NVIDIA 視頻驅動程序和固件設計。他有技術碩士學位。印度理工學院坎普爾分校信息技術專業學位。

Sampurnananda Mishra 是 NVIDIA 負責多媒體驅動程序的高級經理。他研究過 NVIDIA GPU s 上支持的各種多媒體用例。他的興趣包括視頻編碼、計算機視覺、視頻安全、深度學習和系統軟件。他擁有印度 IIT 坎普爾電子工程碩士學位,主攻數字信號處理。

審核編輯:郭婷

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 接口
    +關注

    關注

    33

    文章

    8499

    瀏覽量

    150837
  • NVIDIA
    +關注

    關注

    14

    文章

    4940

    瀏覽量

    102817
  • SDK
    SDK
    +關注

    關注

    3

    文章

    1026

    瀏覽量

    45779
收藏 人收藏

    評論

    相關推薦

    通過Google Play SDK管理中心打造更安全、更優質的SDK

    ? 雖然 SDK 可以為應用開發者帶來許多好處,但也可能會以不易識別或難以控制的方式影響應用。因此,我們在 2021 年推出了 Google Play SDK 管理中心,并在其中納入了一些被廣泛采用
    的頭像 發表于 11-14 10:36 ?170次閱讀
    通過Google Play <b class='flag-5'>SDK</b>管理中心打造更安全、更優質的<b class='flag-5'>SDK</b>

    Zigbee 3.0的新功能

    電子發燒友網站提供《Zigbee 3.0的新功能.pdf》資料免費下載
    發表于 09-26 10:45 ?0次下載
    Zigbee <b class='flag-5'>3.0</b>的新<b class='flag-5'>功能</b>

    NVIDIA Parabricks v4.3.1版本的新功能

    會(ESHG)上發布,其加入了新的體細胞數據變異檢測功能,并將業內領先的工具升級到最新版本。這個版本是繼在 NVIDIA GTC 2024 大會上發布 Parabricks v4.3 之后推出的新版本。
    的頭像 發表于 09-10 10:22 ?341次閱讀
    <b class='flag-5'>NVIDIA</b> Parabricks v4.3.1版本的新<b class='flag-5'>功能</b>

    NVIDIA JetPack 6.0版本的關鍵功能

    NVIDIA JetPack SDK 支持 NVIDIA Jetson 模塊,為構建端到端加速 AI 應用提供全面的解決方案。JetPack 6 通過微服務和一系列新功能,擴展了 Je
    的頭像 發表于 09-09 10:18 ?339次閱讀
    <b class='flag-5'>NVIDIA</b> JetPack 6.0版本的關鍵<b class='flag-5'>功能</b>

    NVIDIA RTX AI套件簡化AI驅動的應用開發

    NVIDIA 于近日發布 NVIDIA RTX AI套件,這一工具和 SDK 集合能夠幫助 Windows 應用開發者定制、優化和部署適用于 Windows 應用的 AI 模型。該套件免費提供,不要求使用者具備 AI 框架和開發
    的頭像 發表于 09-06 14:45 ?400次閱讀

    IB Verbs和NVIDIA DOCA GPUNetIO性能測試

    NVIDIA DOCA GPUNetIO 是 NVIDIA DOCA SDK 中的一個庫,專門為實時在線 GPU 數據包處理而設計。它結合了 GPUDirect RDMA 和 GPUDirect
    的頭像 發表于 08-23 17:03 ?504次閱讀
    IB Verbs和<b class='flag-5'>NVIDIA</b> DOCA GPUNetIO性能測試

    如何將SDK安裝到IDE并使用所有SDK功能

    功能?我已經閱讀了 SDK 入門指南,我也更新了固件,但我仍然不知道如何安裝和使用 SDKSDK 僅使用 AT 命令,這些命令在 wifi_station_scan() - 相當于
    發表于 07-11 08:07

    MediaTek NeuroPilot SDK整合NVIDIATAO

    MediaTek 在 COMPUTEX 2024 期間宣布將 NVIDIA TAO 與 MediaTek NeuroPilot SDK 集成,應用于邊緣 AI 推理芯片的開發。MediaTek
    的頭像 發表于 06-12 14:03 ?464次閱讀

    NVIDIA發布DeepStream 7.0,助力下一代視覺AI開發

    NVIDIA DeepStream 是一款功能強大的 SDK,能夠提供用于構建端到端視覺 AI 管線的 GPU 加速構建模塊。
    的頭像 發表于 05-23 10:09 ?545次閱讀
    <b class='flag-5'>NVIDIA</b>發布DeepStream 7.0,助力下一代視覺AI開發

    sdk中的usb-uvc演示在CYUSB3014上運行,USB3.0沒有響應的原因?

    你好, ,我目前正試圖讓 sdk 中的 usb-uvc 演示(USBVideoClass/UsbVideoClassBulk)在 CYUSB3014 上運行。 我面臨的問題是,它在 USB 2.0 中工作正常,但 USB 3.0 卻沒有響應(沒有 uvc 設備報告)。
    發表于 05-21 06:57

    聚沃科技SDK使用指南

    本文主要針對SDK如何重定義硬件接口和外設參數進行說明,方便讓大家快速靈活使用聚沃科技SDK
    的頭像 發表于 05-06 10:23 ?473次閱讀
    聚沃科技<b class='flag-5'>SDK</b>使用指南

    利用NVIDIA AI Enterprise IGX在邊緣賦能任務關鍵型AI

    NVIDIA SDK 在加速智慧城市、醫療和機器人等領域的 AI 應用方面發揮了重要作用。
    的頭像 發表于 04-26 09:46 ?442次閱讀
    利用<b class='flag-5'>NVIDIA</b> AI Enterprise IGX在邊緣賦能任務關鍵型AI

    NVIDIA Omniverse中的物理模擬功能

    NVIDIA Omniverse? Simulation 作為 NVIDIA Omniverse? 平臺的關鍵組件之一,由 NVIDIA 技術提供動力支持,包括 PhysX?、Flow、Blast 和 AI 等技術。
    的頭像 發表于 03-08 11:30 ?989次閱讀
    <b class='flag-5'>NVIDIA</b> Omniverse中的物理模擬<b class='flag-5'>功能</b>

    DshanMCU-R128s2 SDK 入門

    本章介紹基礎的SDK編譯,打包等操作,方便快速上手 SDK 開發。
    的頭像 發表于 12-22 15:40 ?628次閱讀
    DshanMCU-R128s2 <b class='flag-5'>SDK</b> 入門

    USB 3.0擴展卡的主要特點介紹

    USB 3.0擴展卡的主要特點介紹? USB 3.0擴展卡是一種用于提供額外USB 3.0接口的硬件設備。USB
    的頭像 發表于 12-15 09:50 ?902次閱讀