一种基于CUDA加速技术的视频混合解码渲染方法技术

技术编号:19704073 阅读:59 留言:0更新日期:2018-12-08 14:45
本发明专利技术公开了一种基于CUDA加速技术的视频混合解码渲染方法,特别是涉及一种基于CUDA加速技术的并利用显卡GPU通用并行计算技术及GPU专用视频引擎混合加速处理的视频解码方法;利用基于CUDA的GPU并行计算技术,在GPU大规模通用处理器及GPU专用视频引擎上混合执行视频数据解码算法,解码后的原始视频数据缓存于显存上,使用D3D RTT(渲染到纹理)技术,将缓存数据作为渲染数据渲染后输出到屏幕,使得安防监控行业能利用GPU自身强大的计算能力及GPU专用视频引擎,在单卡上实现解码渲染需求。

【技术实现步骤摘要】
一种基于CUDA加速技术的视频混合解码渲染方法
本专利技术涉及视频解码技术,特别是涉及一种基于CUDA加速技术的并利用显卡GPU通用并行计算技术及GPU专用视频引擎混合加速处理的视频解码方法。
技术介绍
当前安防监控领域中,在多种场合有以下需求:在4K大屏上播放多路4K.H265.8M视频,路数在4~16路不等。(注:由于视频编码种类众多,诸如主流的MPEG-4、H264、H265等,因此,此文全文基于未来安防行业的主流视频编码规格4K.H265.8M进行描述)。现有技术方案1:使用ffmpeg开源库,利用CPU进行软解码。优点:1、通用性强、兼容性强;2、软件开发技术难度低。缺点:1、当前CPU软解4K.H265.8M算法,严重消耗CPU性能,影响安防相关软件的其他计算任务。2、在当前4~16路场景下,无法满足需求,且成本极高。在使用Intel7代i7-7700cpu(2000RMB)配合双通道DDR4-2400内存,nvidiaGTX1060-6G,解码渲染路数只能达到3路,远远无法满足当前或未来安防行业需求。若改用单路E5-2699v4服务器cpu(30000RMB)配合四通道DDR4-2400内存,nvidiaGTX1060-6G,则能使解码渲染路数提升到8~9路,仍只能勉强满足9路需求,无法满足未来长远需要,且E5-2699v4服务器昂贵,成本不可想象。3、解码后原始视频数据缓存于系统内存中,渲染时需经过两次复制拷贝到显卡显存,造成CPU及内存带宽资源的二次浪费。现有技术方案2:使用nvidia厂商提供的CUVID硬件解码方案,利用显卡上的硬件模块进行解码。优点:1、单卡上能达到极佳的解码效率,在一张nvidiaGTX1060-6G显卡(2500RMB)上,即可完成9路4K.H265.8M视频解码渲染,且不占用cpu资源,不占用显卡GPU通用处理单元资源。2、软件开发技术难度低。缺点:1、通用性较弱,兼容性较弱,扩展性差。只能解码目前nvidia显卡所支持的硬解解码类型(例如H264、H265等),若以后出现新的编解码种类(如出现了H266,假想名字),那么该硬件平台则无法使用,只能更换硬件设备。2、解码能力受显卡上的硬件解码模块限制,即便是nvidiaGTX1080TI-11G显卡,也只具有9路解码能力(原因是nvidiaGTX1050~GTX1080TI显卡使用了相同的硬件编解码模块,更换更高级显卡不会提升解码能力)。现有技术方案3:专用解码器设备。优点:解码效率极佳,设备硬解一体化。缺点:1、通用性较弱,兼容性较弱,扩展性差。只能解码该专用设备所支持的硬解解码类型(例如H264、H265等),若以后出现新的编解码种类(如出现了H266),那么该硬件平台则无法使用,只能更换硬件设备。2、由于解码后数据在专用设备中,因此不利于外部对解码后原始视频数据的后期处理,所有的后处理均要在该专用设备系统上进行开发。(此项严重制约了安防应用软件的灵活性)。
技术实现思路
针对现有技术的缺点,本专利技术的目的在于提出一种基于CUDA加速技术的视频混合解码渲染方法,利用基于CUDA的GPU并行计算技术,在GPU大规模通用处理器及GPU专用视频引擎上混合执行视频数据解码算法,解码后的原始视频数据缓存于显存上,使用D3DRTT(渲染到纹理)技术,将缓存数据作为渲染数据渲染后输出到屏幕,使得安防监控行业能利用GPU自身强大的计算能力及GPU专用视频引擎,在单卡上实现解码渲染需求。为解决上述技术问题,本专利技术提供了一种基于CUDA加速技术的视频混合解码渲染方法,其特征在于:包括系统内存和GPU显存,具体包括如下步骤:(1)利用系统内存从网络或本地取得视频数据;(2)使用CUDA接口,调用GPU中的专用视频引擎和/或调用GPU通用处理单元,对所述视频数据进行混合执行解码,生成视频原始数据;(3)将所述视频原始数据缓存于所述显存上;(4)使用D3D渲染到纹理技术,直接以所述显存上的所述视频原始数据为渲染数据,将渲染后的画面推送到客户机屏幕上显示。优选的,所述步骤(2)中的所述视频数据为H265数据。优选的,所述步骤(2)中的GPU为NVIDIAGPU。优选的,所述步骤(2)中解码过程,包括对输入视频数据进行处理,包括:对输入视频数据首先进行预测,包括帧内预测与帧间预测。优选的,所述帧内预测为由当前帧中已编码并解码重建的相邻块预测得到。优选的,所述帧间预测为通过基于一个或多个参考帧的运动估计和运动补偿得到。优选的,通过当前视频数据与经过预测的预测值做差得到预测残差。优选的,对预测残差进一步进行变换编码和量化,从而得到量化后的残差系数。优选的,对所述残差系数进行熵编码,从而得到压缩后的数据;优选的,对所述残差系数进行反量化、反变换,得到预测残差,之后预测残差与所述预测值相加,经滤波去除块效应后得到解码重构图像。与现有技术相比,本专利技术至少具有下述的有益效果或优点:利用基于CUDA的GPU并行计算技术,在GPU大规模通用处理器及GPU专用视频引擎上混合执行视频数据解码算法,解码后的原始视频数据缓存于显存上,使用D3DRTT(渲染到纹理)技术,将缓存数据作为渲染数据渲染后输出到屏幕,使得安防监控行业能利用GPU自身强大的计算能力及GPU专用视频引擎,在单卡上实现解码渲染需求。本方案使用GPU通用并行计算技术及显卡专用视频引擎解码,整个处理过程均在显卡内部完成,中途所有数据处理均不经过系统主存,因此,本方案可无限近似认为不消耗任何CPU及内存资源,从根本上缓解了监控行业软件对CPU和内存性能的依赖,为监控其他计算任务预留出更多系统硬件资源。解码能力与显卡级别成正比,可通过采用更高规格的显卡,以增大解码渲染路数。通用性强。即使随着时代的变迁,出现了更新的编码方案,则可通过此提出的技术方案,屏蔽视频专用引擎分支,不需更换硬件设备,仍能维持解码渲染功能。由于原始视频数据存在于应用计算机内,且为计算机操作系统,非常适合对原始视频数据做后期处理。附图说明以下将结合附图对本专利技术做进一步详细说明;图1是本专利技术设备的系统结构图。具体实施方式下面将结合本专利技术实施例中的附图,对本专利技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本专利技术一部分实施例,而不是全部的实施例。基于本专利技术中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本专利技术保护的范围。本专利技术提供了一种基于CUDA加速技术的视频混合解码渲染方法,如图1所示,包括系统内存和GPU显存,具体包括如下步骤:(1)利用系统内存从网络或本地取得视频数据;(2)使用CUDA(computeunifieddevicearchitecture)接口,调用GPU中的专用视频引擎和/或调用GPU通用处理单元,对所述视频数据进行混合执行解码,生成视频原始数据;(3)将所述视频原始数据缓存于所述显存上;(4)使用D3D渲染到纹理技术,直接以所述显存上的所述视频原始数据为渲染数据,将渲染后的画面推送到客户机屏幕上显示。本方案详细实现描述如下:(注:第1大点与第2大点为并行处理的两种方式,不存在先后顺序)1、使用CUDA(computeunifieddevicearc本文档来自技高网
...

【技术保护点】
1.一种基于CUDA加速技术的视频混合解码渲染方法,其特征在于:包括系统内存和GPU显存,具体包括如下步骤:(1)利用系统内存从网络或本地取得视频数据;(2)使用CUDA接口,调用GPU中的专用视频引擎和/或调用GPU通用处理单元,对所述视频数据进行混合执行解码,生成视频原始数据;(3)将所述视频原始数据缓存于所述显存上;(4)使用D3D渲染到纹理技术,直接以所述显存上的所述视频原始数据为渲染数据,将渲染后的画面推送到客户机屏幕上显示。

【技术特征摘要】
1.一种基于CUDA加速技术的视频混合解码渲染方法,其特征在于:包括系统内存和GPU显存,具体包括如下步骤:(1)利用系统内存从网络或本地取得视频数据;(2)使用CUDA接口,调用GPU中的专用视频引擎和/或调用GPU通用处理单元,对所述视频数据进行混合执行解码,生成视频原始数据;(3)将所述视频原始数据缓存于所述显存上;(4)使用D3D渲染到纹理技术,直接以所述显存上的所述视频原始数据为渲染数据,将渲染后的画面推送到客户机屏幕上显示。2.根据权利要求1所述的方法,其特征在于:所述步骤(2)中的所述视频数据为H265数据。3.根据权利要求1所述的方法,其特征在于:所述步骤(2)中的GPU为NVIDIAGPU。4.根据权利要求1所述的方法,其特征在于:所述步骤(2)中解码过程,包括对输入视频数据进行处理...

【专利技术属性】
技术研发人员:张新祥刘卓锋江盛欣洪曙光黄仝宇汪刚宋一兵侯玉清刘双广
申请(专利权)人:高新兴科技集团股份有限公司
类型:发明
国别省市:广东,44

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1