0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

使用NVIDIA SDK 11.1对DirectX 12进行编码

星星科技指导员 来源:NVIDIA 作者:NVIDIA 2022-04-20 16:27 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

DirectX 12 是 Microsoft 提供的一种低级编程 API ,与以前的版本相比,它减少了驱动程序开销。 DirectX 12 使用命令队列、命令列表等在底层硬件上提供了更大的灵活性和细粒度控制,从而提高了资源利用率。您可以利用这些功能,优化应用程序,并获得比早期 DirectX 版本更好的性能。同时,应用程序本身必须负责资源管理、同步等。

越来越多的游戏标题和其他图形应用程序采用 DirectX12 API 。视频编解码器 SDK 11 . 1 在 Windows 20H1 及更高版本的操作系统上引入了 DirectX 12 编码支持。这使 DirectX 12 应用程序能够在所有受支持的 GPU 代中使用 NVENC 。视频编解码器 SDK 包包含 Nvencodepi 头文件、演示用法的示例应用程序以及使用 API 的编程指南。示例应用程序包含 C ++包装类,可以根据需要重用或修改。

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 时,客户端应用程序还必须指定输入缓冲区格式。

尽管在 DirectX 12 中传递给 Encode picture API 的大多数参数与其他接口中的参数相同,但仍存在某些功能差异。输入端(客户端应用程序写入输入面, NVENC 读取输入面)和输出端( NVENC 写入位流面,应用程序读取位流面)的同步必须使用 fences 进行管理。这与以前的 DirectX 接口不同,后者由操作系统运行时和驱动程序自动处理。

在 DirectX 12 中,需要有关围栏和围栏值的附加信息作为编码图片 API 的输入参数。这些围栏和围栏值用于同步 CPU – GPU 和 GPU – GPU 操作。应用程序必须在NV_ENC_PIC_PARAMS::inputBuffer和NV_ENC_PIC_PARAMS:: outputBitstream中发送以下输入和输出结构指针,其中包含围栏和围栏值:

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;     
     …

要在异步操作模式下检索编码输出,应用程序应在调用NvEncLockBitstream之前等待完成事件。在同步操作模式下,应用程序可以调用NvEncLockBitstream,因为 NVENCODE API 在返回编码输出之前确保编码已完成。但是,在这两种情况下,客户机应用程序都应该在NV_ENC_LOCK_BITSTREAM::outputBitstream中传递指向NV_ENC_OUTPUT_RESOURCE_D3D12的指针,该指针在NvEncEncodePicture API 中使用。

关于作者

Dipti Taur 是 NVIDIA 多媒体驱动程序团队的高级系统软件工程师。她曾从事DirectX 12的各种视频编解码器、视频驱动程序开发和应用程序编程接口设计。她拥有印度孟买IIT电子工程硕士学位,专业从事通信信号处理。

Sampurnananda Mishra 是 NVIDIA 负责多媒体驱动程序的高级经理。他研究过 NVIDIA GPU s 上支持的各种多媒体用例。他的兴趣包括视频编码、计算机视觉、视频安全、深度学习和系统软件。他拥有印度 IIT 坎普尔电子工程硕士学位,主攻数字信号处理。

审核编辑:郭婷

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 接口
    +关注

    关注

    33

    文章

    9446

    浏览量

    156145
  • NVIDIA
    +关注

    关注

    14

    文章

    5496

    浏览量

    109097
  • 深度学习
    +关注

    关注

    73

    文章

    5590

    浏览量

    123911
收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    M12编码器线束加工:让速度与位置反馈更加精确可靠

    M12 编码器线束虽然微小,但却决定着整套自动化设备的定位能力。 在德索工厂,我们对每一条编码器线束进行编号、检测、归档,是对客户设备的负责。
    的头像 发表于 11-18 18:02 953次阅读
    M<b class='flag-5'>12</b><b class='flag-5'>编码</b>器线束加工:让速度与位置反馈更加精确可靠

    NVIDIA开源Audio2Face模型及SDK

    NVIDIA 现已开源 Audio2Face 模型与 SDK,让所有游戏和 3D 应用开发者都可以构建并部署带有先进动画的高精度角色。NVIDIA 开源 Audio2Face 的训练框架,任何人都可以针对特定用例对现有模型
    的头像 发表于 10-21 11:11 544次阅读
    <b class='flag-5'>NVIDIA</b>开源Audio2Face模型及<b class='flag-5'>SDK</b>

    Nordic nRF5 SDK和softdevice介绍

    里?Softdevice帮助文档在哪里?如何选择某个SDK例子 (example) 以开始我们的BLE开发之旅?本文将对以上问题进行解答。 Nordic目前有2套完全独立的SDK:nRF5 S
    的头像 发表于 08-20 09:54 2623次阅读
    Nordic nRF5 <b class='flag-5'>SDK</b>和softdevice介绍

    12NVIDIA Sky Hackathon精彩回顾

    作为 NVIDIA 开发者社区的年度技术盛事,第 12 届 Sky Hackathon 刚刚落下帷幕,但其带来的技术创新浪潮却远未结束。42 支优秀团队,39 个完整项目,这背后是无数开发者挥洒的汗水和闪耀的智慧。
    的头像 发表于 08-05 16:26 837次阅读

    M12航空插头引脚功能:从编码差异看连接逻辑

    选择德索的三大理由:12编码全覆盖,支持免费样品测试;100+工程师48小时出接线方案;所有插头通过CE认证,7天无理由退换。做这行久了明白,客户要的不是复杂参数,而是“拿来就能用”的放心。德索把编码逻辑做简单了,连接自然就可
    的头像 发表于 07-31 17:40 586次阅读
    M<b class='flag-5'>12</b>航空插头引脚功能:从<b class='flag-5'>编码</b>差异看连接逻辑

    NVIDIA Jetson + Isaac SDK 人形机器人方案全面解析

    NVIDIA Jetson + Isaac SDK 人形机器人方案全面解析 一、方案概述 Jetson 硬件平台 :提供 AI + GPU 运算能力,配合多传感器、视觉、传动控制体系 Isaac
    的头像 发表于 07-30 16:12 1851次阅读

    NVIDIA Jetson + Isaac SDK 在人形机器人领域的方案详解

    NVIDIA Jetson + Isaac SDK 在人形机器人领域的 方案详解 ,涵盖芯片型号、软件平台、开发工具链、应用场景与典型客户等。 一、方案概述:Jetson + Isaac SDK
    的头像 发表于 07-30 16:05 3129次阅读

    如何调试nRF5 SDK

    ,以及命令行方式等多种手段来调试你的代码。 1. 通过打log方式进行调试 nRF5 SDK支持UART和SWD J-Link(RTT)两种底层通信方式来打印日志,SDK14之后日志也可以通过蓝牙或者
    的头像 发表于 06-24 08:59 523次阅读
    如何调试nRF5 <b class='flag-5'>SDK</b>

    NVIDIA Isaac Sim与NVIDIA Isaac Lab的更新

    在 COMPUTEX 2025 上,NVIDIA 宣布了机器人仿真参考应用 NVIDIA Isaac Sim 和机器人学习框架 NVIDIA Isaac Lab 的更新,以加速各种形态机器人的开发。
    的头像 发表于 05-28 10:06 1755次阅读

    nRF Connect SDK(NCS)/Zephyr固件升级详解 – 重点讲述MCUboot和蓝牙空中升级

    编码如何解读?NCS可不可以进行单bank升级?可不可以把一个nRF5 SDK应用升级到NCS应用?MCUboot拷贝操作中的swap和overwrite有什么区别?为什么说MCUboot升级永远都不
    的头像 发表于 05-09 14:14 3004次阅读
    nRF Connect <b class='flag-5'>SDK</b>(NCS)/Zephyr固件升级详解 – 重点讲述MCUboot和蓝牙空中升级

    NVIDIA实现神经网络渲染技术的突破性增强功能

    近日,NVIDIA 宣布了 NVIDIA RTX 神经网络渲染技术的突破性增强功能。NVIDIA 与微软合作,将在 4 月的 Microsoft DirectX 预览版中增加神经网络着
    的头像 发表于 04-07 11:33 871次阅读

    摩尔线程发布图形显卡驱动v290.100.1

    3月20日,摩尔线程发布版本号为v290.100.1的图形显卡驱动程序。在DirectX 12模式下,新驱动对《战地风云5》《幽灵行者2》进行了深度优化,游戏平均帧率提升约50%。此外,《战地风云5》在
    的头像 发表于 03-21 14:26 679次阅读

    NVIDIA Blackwell白皮书:NVIDIA Blackwell Architecture Technical Brief

    NVIDIA Blackwell白皮书:NVIDIA Blackwell Architecture Technical Brief
    的头像 发表于 03-20 18:35 2408次阅读

    NVIDIA RTX 4500 Ada与NVIDIA RTX A5000的对比

    基于大众所熟知的 NVIDIA Ada Lovelace 架构,NVIDIA RTX 4500 Ada Generation是一款介于 NVIDIA RTX 4000 Ada 和 NVIDIA
    的头像 发表于 03-05 10:30 3706次阅读

    DISCOAA编码器性质特点

    DISCOAA编码器的具体详细资料或参数 ‌。不过,我们可以根据编码器的通用知识和一些相关信息来概述编码器的一般特点和类型。 编码器通常用于将机械运动或位置转换为电信号,以便
    的头像 发表于 02-20 13:50 622次阅读