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

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 坎普尔电子工程硕士学位,主攻数字信号处理。


新小型力传感器在各领域的应用
用AI预测地震、洪水、飓风和火山喷发 现在已经成为了可能
长虹等离子面板产能将升至300万片
禾赛科技激光雷达获哪吒汽车项目定点,新车型将于2025年上半年落地
泰矽微荣膺上榜2023年中国IC风云榜
使用NVIDIA SDK 11.1对DirectX 12进行编码
骁龙855和845差距大吗
开启扫地机识物避障时代,INDEMIND双目避障模组正式发布
华为云正以超高速行驶,2020年云市场年交易额超10亿元
未来PPS4等主机或沦为PSVR的外设
微软为OpenAI打造了世界一流的超级计算机
远翔FP7130:80V10A降压恒流PWM调光IC
Vicor将在OCP China Day 2022上展示如何充分释放xPU性能的创新方法
中国学者为AI测智商 当今智能电视排名在哪里?
射频模拟器件数字化的无线通信愿景正在实现
STM32串口DMA问题详解
一种缓解负采样偏差的对比学习句表示框架DCLR
微源半导体智能手环手表重点物料选型指南
华为Mate20 Pro和华为P30 Pro,哪个配置更高更好用?
大数据在医疗保健上有什么所为