NVCR:面向神经视频编解码器部署的可扩展原生运行时

《SoftwareX》:NVCR: An extensible native runtime for deploying neural video codecs

【字体: 大 中 小 】 时间:2026年11月02日 来源:SoftwareX 1.9

编辑推荐:

  神经视频编码仓库通常提供模型与评估脚本,但可部署应用还需要持久的时间状态、兼容的编译产物、流式接口以及明确的字节流定义。NVCR(Neural Video Codec Runtime,神经视频编解码运行时)通过原生C++20运行时提供这些服务,包括有状态会话、

  
神经视频编码仓库通常提供模型与评估脚本,但可部署应用还需要持久的时间状态、兼容的编译产物、流式接口以及明确的字节流定义。NVCR(Neural Video Codec Runtime,神经视频编解码运行时)通过原生C++20运行时提供这些服务,包括有状态会话、编解码器适配器与执行提供者接口、目标限定的产物选择以及有界访问单元。其唯一的生产集成是Microsoft的Deep Contextual Video Compression–Real Time(DCVC-RT),在NVIDIA硬件上采用TensorRT半精度推理(FP16)。研究人员在RTX 4070与Jetson Orin Nano Super上,使用六种分辨率、四种量化设置、三种预测组长度以及每种条件十次独立吞吐量运行,将该实现与Python/PyTorch DCVC-RT实现进行比较。每个作业在十帧预热后测量100帧。进程吞吐量包括启动、模型加载、预热、文件输入/输出(I/O)与拆除。在各分辨率内合并等工作量运行,得到RTX 4070上NVCR/Python编码与解码吞吐量比分别为1.96–3.05与1.37–3.01,Orin上分别为1.51–3.50与1.27–3.21。这些比率比较的是完整实现。在144个匹配质量点上,每个实现与条件各进行一次质量评估,NVCR减Python的差异在6:1:1加权YUV峰值信噪比(PSNR)上为?0.129至+0.127 dB,在每像素熵比特上为?1.45%至+2.07%。单独的RTX 3050与RTX 5060运行在额外NVIDIA笔记本电脑上展示了部署工作流。结果支持该集成;跨学习型编解码器家族或独立生产提供者的复用仍未经验证。标准媒体容器与FFmpeg集成仍属未来工作。
研究背景方面,神经模型只是可用视频编解码器的一部分。深层上下文视频压缩(DCVC)引入了带学习上下文的条件编码,DCVC-RT进一步解决了实际执行成本问题;上下文调制改变了时间上下文的构建与补偿,参考层级则为帧间预测组织参考信息。这些编解码器特定选择促使将时间语义置于编解码器适配器之后。部署问题同样催生了多平台学习型视频编解码器(MLVC),其传输尺度参数以支持跨设备熵一致性,这些问题也影响连续摄像与视觉物联网应用。现有可复用压缩库、推理运行时与媒体框架已分别提供压缩组件、执行服务或编解码器生命周期,NVCR则将这些既有服务类型结合在面向编解码器的原生运行时中;提供者抽象、持久状态与排空并非其单独新贡献。研究旨在检验其接口是否表达有状态编解码器生命周期、评估率失真(RD)一致性、比较进程吞吐量与峰值宿主进程常驻集大小(RSS),并在NVIDIA桌面、笔记本与Jetson平台上测试部署。关键技术方法上,NVCR采用C++20原生运行时与CUDA C++17,构建系统为CMake,依赖CUDA与TensorRT进行神经推理;离线准备阶段校验固定DCVC-RT源码与检查点哈希,导出开放神经网络交换(ONNX)图与熵/量化资产,并为选定目标与配置构建TensorRT FP16计划;生产集成使用TensorRT半精度神经推理与原生范围非对称数字系统(rANS)熵编码器;CLI接受平面8位YUV 4:2:0;吞吐量研究在RTX 4070桌面与Jetson Orin Nano Super开发套件上进行,每个平台覆盖72种条件,每种条件含十次全新编码与十次全新解码进程;质量评估使用同一四量化参数矩阵,每实现与条件一次质量评估;另在RTX 3050与RTX 5060笔记本上通过Docker Desktop/WSL 2验证可移植性;测试数据来自Xiph/Derf与HEVC Class B集合。

研究结果方面,2.1 通用运行时架构:NVCR通过RuntimeConfig配置对象启动编解码器构造,静态注册表提供匹配工厂,产物解析器依据检测目标校验引擎目录并通过RuntimeServices提供经校验的捆绑包,DCVC-RT适配器从TensorRT提供者获得后端;编码器会话暴露send_frame与receive_access_unit,并提供flush与reset,解码器会话暴露对应访问单元输入与帧输出操作,try_again表示无输出就绪,运行时仅在flush与排空后返回end_of_stream;编解码器适配器拥有预测组决策、参考与潜在状态、熵编码及编解码器私有载荷,执行提供者拥有可执行产物、张量绑定、设备内存、同步、执行与后端错误报告,CUDA、TensorRT与DCVC-RT类型不出现在公共会话接口中。2.2 产物与有界访问单元:离线准备校验固定源码与检查点哈希、导出ONNX图与熵/量化资产并构建TensorRT FP16计划,引擎记录标识编解码器、模型集、提供者、精度、操作系统、架构、设备或计算能力、CUDA与TensorRT版本、接口与模式版本、文件、摘要、来源与分发状态;部署的NVCR加载已准备TensorRT计划,运行时不加载Python、PyTorch检查点或ONNX图;NVAU将编解码器访问单元与时间戳及应用元数据分离,写入器默认版本1(32字节固定头加公共模型标识与一个有界编解码器载荷),版本2为实验性(64字节头并增加编解码器/配置身份、解码与呈现顺序、依赖、像素格式、位深、随机访问标志与类型化段),解析器在后端执行前限定标识符、维度、依赖与段数量及总大小。2.3 部署与验证:生产集成使用TensorRT半精度与原生rANS熵编码器,I帧重置参考状态,P帧使用前一重建;CLI支持组件发现、兼容性检查、编码、解码与加权YUV PSNR;CPU验证通过全部15项CTest(八个C++套件与七个Python套件),C++测试含确定性解析器变异测试并使用AddressSanitizer与UndefinedBehaviorSanitizer;桌面GPU验证通过14项CTest;发布检查还包括格式向量、清单、校验和与机器可读测量记录;桌面目录安装中解析器按精确目标、相同数值计算能力、经验证的Ampere及更新桌面回退顺序对声明引擎捆绑包排序,Jetson/AArch64目标仅精确匹配。3.1 实验基础与档案记录:受控RTX 4070与Jetson Orin测量评估的是随后归档为v1.0.7的NVCR实现,发布后未重跑;仅RTX 3050与RTX 5060笔记本吞吐量活动使用NVCR v1.0.7重跑,v1.0.8保留相同被评估运行时与编解码器实现;主指标为有效进程吞吐量(帧/秒,100/Tprocess),包含进程启动与终止、初始化、模型加载、预热与重置、文件I/O、编解码器执行及进程内测量输出、核算与哈希,十帧预热准备执行但不计入评估的100帧输出而计入作业完成时间;次要编解码器吞吐量为100/Σti;峰值宿主进程RSS以单独十次全新编码与解码进程测量,父进程获取子进程Linux wait4高水位RSS并由KiB转换为MiB;条件统计使用十次独立进程执行,给出均值、中位数、样本标准差、极值、变异系数与均值95% Student-t区间;RD评估使用同一四量化参数矩阵,通用评估器在可见维度上比较前100帧序列化8位平面YUV 4:2:0重建与输入,公式(1)对平面PSNR进行时间池化后平均,码率由熵编码载荷按每像素比特计算,BD-rate对共享质量范围内log码率的分段三次Hermite插值积分且不外推。3.2 DCVC-RT集成验证:NVCR减Python加权YUV PSNR差异在RTX 4070上为?0.119至+0.084 dB,Orin上为?0.129至+0.127 dB,差异在四个量化参数上双向出现,实验未分离原因或归因于FP16推理;BD-rate在RTX 4070上为?0.03%至+3.70%,Orin上为+0.22%至+4.06%,两平台上FourPeople在GOP 100时差异最大;这些RD结果使用熵载荷码率,全部144个NVCR质量条件中序列化输出在每100帧作业中超出熵编码载荷9208字节(92.08字节/帧),对应176×144约0.0291比特/像素、1920×1080约0.000355比特/像素;进程吞吐量池化NVCR/Python编码与解码比在RTX 4070上为1.96–3.05与1.37–3.01,Jetson Orin上为1.51–3.50与1.27–3.21,NVCR在两平台所有评估条件下编码与解码平均进程级吞吐量均更高;NVCR在两平台所有评估条件下编码与解码平均峰值宿主进程RSS均低于Python,RTX 4070编码降低56.8–64.2%、解码55.6–63.9%,Orin编码降低24.2–41.2%、解码22.5–36.9%。3.3 额外NVIDIA笔记本平台可移植性:RTX 3050与RTX 5060实验通过Docker Desktop/WSL2使用NVCR v1.0.7发布可执行文件,以同一公共运行时接口构造编解码器、解析兼容引擎捆绑包并完成144p至1080p编码解码,展示共享公共接口、产物解析路径与编解码工作流在额外笔记本上的可移植性,但不构成受控设备性能比较。讨论部分指出,NVCR使应用在集成另一编解码器或提供者时可复用状态管理、产物资格、访问单元成帧与验证,后端特定类型保持在公共会话接口之外;CMake包、原生安装器与目标特定容器支持部署并具兼容性检查与显式失败模式;发布提供各目标注册的加速器测试、第三方声明与公共支持地址,机器可读测量记录使部署条件可审计,产物检查防止静默选择不兼容TensorRT计划。局限包括验证仅覆盖受支持NVIDIA Linux与Jetson目标上的DCVC-RT/TensorRT FP16,仅处理器夹具在不含神经推理情况下检验接口且不确立跨神经编解码器架构的通用性,支持Windows托管的Linux容器但原生Windows/macOS、非NVIDIA加速与基于处理器的神经推理仍不支持;NVCR遵循语义版本控制,补丁与次要版本保持公共应用编程接口(API)兼容而破坏性变更需主要版本,升级时应重建应用且不保证跨发布应用二进制接口(ABI)兼容;TensorRT计划须来自可信来源,哈希与兼容性检查不确立计划加载安全,选择规则不确立通用引擎可移植性或跨设备同等性能,笔记本研究仅展示工作流可移植性,直接跨设备性能比较、能耗与长时间流稳定性仍未评估;结果覆盖含启动与预热的有限100帧作业而非稳态流吞吐量,逐帧同步限制测量编解码路径中的重叠,聚合时间不提供中位数、95百分位或最大帧延迟,完整实现比较不分离运行时架构的性能效应;MP4/Matroska映射、FFmpeg集成、索引及音频与字幕轨仍未实现,计划工作优先标准容器映射、更广应用集成以及另一学习型编解码器与独立生产提供者的验证。结论部分译为:NVCR为部署神经编解码器提供公共原生会话生命周期。其首个集成DCVC-RT/TensorRT FP16在RTX 4070与Jetson Orin上编码与解码的平均进程吞吐量高于Python/PyTorch且平均峰值宿主进程RSS更低。加权YUV PSNR差异至多0.13 dB,BD-rate差异为?0.03%至+4.06%。这些结果比较的是所评估100帧作业的完整实现。RTX 3050/5060部署在额外笔记本上展示了共享公共接口、产物解析路径与编码/解码工作流。另一编解码器/提供者及与既有媒体工作流的集成仍属未来工作。
相关新闻
生物通微信公众号
微信
新浪微博

热点排行

    今日动态 | 人才市场 | 新技术专栏 | 中国科学人 | 云展台 | BioHot | 云讲堂直播 | 会展中心 | 特价专栏 | 技术快讯 | 免费试用

    版权所有 生物通

    Copyright© eBiotrade.com, All Rights Reserved

    联系信箱:

    粤ICP备09063491号