0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

使用NVIDIA SDK 11.1對DirectX 12進(jìn)行編碼

星星科技指導(dǎo)員 ? 來源:NVIDIA ? 作者:NVIDIA ? 2022-04-20 16:27 ? 次閱讀

DirectX 12 是 Microsoft 提供的一種低級編程 API ,與以前的版本相比,它減少了驅(qū)動程序開銷。 DirectX 12 使用命令隊列、命令列表等在底層硬件上提供了更大的靈活性和細(xì)粒度控制,從而提高了資源利用率。您可以利用這些功能,優(yōu)化應(yīng)用程序,并獲得比早期 DirectX 版本更好的性能。同時,應(yīng)用程序本身必須負(fù)責(zé)資源管理、同步等。

越來越多的游戲標(biāo)題和其他圖形應(yīng)用程序采用 DirectX12 API 。視頻編解碼器 SDK 11 . 1 在 Windows 20H1 及更高版本的操作系統(tǒng)上引入了 DirectX 12 編碼支持。這使 DirectX 12 應(yīng)用程序能夠在所有受支持的 GPU 代中使用 NVENC 。視頻編解碼器 SDK 包包含 Nvencodepi 頭文件、演示用法的示例應(yīng)用程序以及使用 API 的編程指南。示例應(yīng)用程序包含 C ++包裝類,可以根據(jù)需要重用或修改。

typedef struct _NV_ENC_FENCE_POINT_D3D12
 {
     void*                   pFence; /**< [in]: Pointer to ID3D12Fence. This fence object is  
                                                used for synchronization. */
     uint64_t                value;  /**< [in]: Fence value to reach or exceed before the GPU 
                                                operation or fence value to set the fence to,                                                                
                                                after the GPU operation. */?

初始化 NVENC 時,客戶端應(yīng)用程序還必須指定輸入緩沖區(qū)格式。

盡管在 DirectX 12 中傳遞給 Encode picture API 的大多數(shù)參數(shù)與其他接口中的參數(shù)相同,但仍存在某些功能差異。輸入端(客戶端應(yīng)用程序?qū)懭胼斎朊妫?NVENC 讀取輸入面)和輸出端( NVENC 寫入位流面,應(yīng)用程序讀取位流面)的同步必須使用 fences 進(jìn)行管理。這與以前的 DirectX 接口不同,后者由操作系統(tǒng)運行時和驅(qū)動程序自動處理。

在 DirectX 12 中,需要有關(guān)圍欄和圍欄值的附加信息作為編碼圖片 API 的輸入?yún)?shù)。這些圍欄和圍欄值用于同步 CPU – GPU 和 GPU – GPU 操作。應(yīng)用程序必須在NV_ENC_PIC_PARAMS::inputBuffer和NV_ENC_PIC_PARAMS:: outputBitstream中發(fā)送以下輸入和輸出結(jié)構(gòu)指針,其中包含圍欄和圍欄值:

typedef struct _NV_ENC_INPUT_RESOURCE_D3D12
 {
     NV_ENC_REGISTERED_PTR       pInputBuffer
     NV_ENC_FENCE_POINT_D3D12    inputFencePoint;       
     …
 } NV_ENC_INPUT_RESOURCE_D3D12;
  
 typedef struct _NV_ENC_OUTPUT_RESOURCE_D3D12
 {
     NV_ENC_REGISTERED_PTR      pOutputBuffer;
     NV_ENC_FENCE_POINT_D3D12   outputFencePoint;     
     …

要在異步操作模式下檢索編碼輸出,應(yīng)用程序應(yīng)在調(diào)用NvEncLockBitstream之前等待完成事件。在同步操作模式下,應(yīng)用程序可以調(diào)用NvEncLockBitstream,因為 NVENCODE API 在返回編碼輸出之前確保編碼已完成。但是,在這兩種情況下,客戶機(jī)應(yīng)用程序都應(yīng)該在NV_ENC_LOCK_BITSTREAM::outputBitstream中傳遞指向NV_ENC_OUTPUT_RESOURCE_D3D12的指針,該指針在NvEncEncodePicture API 中使用。

關(guān)于作者

Dipti Taur 是 NVIDIA 多媒體驅(qū)動程序團(tuán)隊的高級系統(tǒng)軟件工程師。她曾從事DirectX 12的各種視頻編解碼器、視頻驅(qū)動程序開發(fā)和應(yīng)用程序編程接口設(shè)計。她擁有印度孟買IIT電子工程碩士學(xué)位,專業(yè)從事通信信號處理。

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

審核編輯:郭婷

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 接口
    +關(guān)注

    關(guān)注

    33

    文章

    8625

    瀏覽量

    151347
  • NVIDIA
    +關(guān)注

    關(guān)注

    14

    文章

    4996

    瀏覽量

    103216
  • 深度學(xué)習(xí)
    +關(guān)注

    關(guān)注

    73

    文章

    5506

    瀏覽量

    121255
收藏 人收藏

    評論

    相關(guān)推薦

    通過Google Play SDK管理中心打造更安全、更優(yōu)質(zhì)的SDK

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

    如何使用ASCII碼進(jìn)行編碼

    ,包括英文字母、數(shù)字、標(biāo)點符號和一些特殊符號。每個字符在ASCII碼表中都有一個唯一的數(shù)字代碼,范圍從0到127。以下是使用ASCII碼進(jìn)行編碼的基本步驟: 1. 確定字符的ASCII碼 首先,你需要
    的頭像 發(fā)表于 11-10 09:37 ?665次閱讀

    NVIDIA JetPack 6.0版本的關(guān)鍵功能

    NVIDIA JetPack SDK 支持 NVIDIA Jetson 模塊,為構(gòu)建端到端加速 AI 應(yīng)用提供全面的解決方案。JetPack 6 通過微服務(wù)和一系列新功能,擴(kuò)展了 Jetson 平臺的靈活性和可擴(kuò)展性,是 202
    的頭像 發(fā)表于 09-09 10:18 ?447次閱讀
    <b class='flag-5'>NVIDIA</b> JetPack 6.0版本的關(guān)鍵功能

    NVIDIA RTX AI套件簡化AI驅(qū)動的應(yīng)用開發(fā)

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

    IB Verbs和NVIDIA DOCA GPUNetIO性能測試

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

    Mistral AI與NVIDIA推出全新語言模型Mistral NeMo 12B

    Mistral AI 和 NVIDIA 于近日共同發(fā)布了一款全新的領(lǐng)先語言模型Mistral NeMo 12B。開發(fā)者可以輕松定制和部署該模型,令其適用于支持聊天機(jī)器人、多語言任務(wù)、編碼和摘要的企業(yè)應(yīng)用。
    的頭像 發(fā)表于 07-27 11:04 ?675次閱讀

    ESP8266 12E如何使用SDK中的函數(shù)?

    ESP8266 12E - 如何使用 SDK 中的函數(shù)
    發(fā)表于 07-22 06:52

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

    我是 Wi-Fi 無線通信和ESP8266芯片方面的新手。我想使用帶有MCUXpresso IDE的32位MCU Kinetis與ESP 12-E進(jìn)行通信。如何將SDK安裝到IDE并使用所有S
    發(fā)表于 07-11 08:07

    NVIDIA Holoscan SDK中使用OpenCV構(gòu)建零拷貝AI傳感器處理管線

    NVIDIA Holoscan 是 NVIDIA 的跨領(lǐng)域多模態(tài)實時 AI 傳感器處理平臺,為開發(fā)者構(gòu)建端到端傳感器處理管線奠定了基礎(chǔ)。
    的頭像 發(fā)表于 07-02 11:50 ?531次閱讀
    在<b class='flag-5'>NVIDIA</b> Holoscan <b class='flag-5'>SDK</b>中使用OpenCV構(gòu)建零拷貝AI傳感器處理管線

    MediaTek NeuroPilot SDK整合NVIDIATAO

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

    NVIDIA發(fā)布DeepStream 7.0,助力下一代視覺AI開發(fā)

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

    聚沃科技SDK使用指南

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

    利用NVIDIA AI Enterprise IGX在邊緣賦能任務(wù)關(guān)鍵型AI

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

    foc sdk5.0如何使用庫中AB編碼器的脈沖來計數(shù)?

    在使用foc sdk5.0過程中,我配置了光編碼器來檢測馬達(dá)速度,但在使用過程中,發(fā)現(xiàn)控制不是很好,我想使用庫中AB編碼器的脈沖來計數(shù),請告知應(yīng)該用哪個函數(shù)? 謝謝!
    發(fā)表于 04-03 08:26

    FPGA處理編碼信號進(jìn)行毛刺濾波的方法實現(xiàn)

    在利用處理編碼信號時,一般在較為理想的環(huán)境下可以很方便進(jìn)行計算,判斷等。
    的頭像 發(fā)表于 02-21 14:46 ?1605次閱讀
    FPGA處理<b class='flag-5'>編碼</b>信號<b class='flag-5'>進(jìn)行</b>毛刺濾波的方法實現(xiàn)