利用cpu和gpu实现多路自适应并行转码的方法及系统的制作方法

文档序号:9263756阅读:768来源:国知局
利用cpu和gpu实现多路自适应并行转码的方法及系统的制作方法
【技术领域】
[0001]本发明涉及刑侦领域中对监控视频的处理,具体为一种利用CPU和GPU实现多路自适应并行转码的方法及系统,属于刑侦视频处理业务领域。
【背景技术】
[0002]随着平安城市的广泛建设和社会面监控的普及,刑侦破案工作越来越倚重于视频监控资源。视频侦查技术已成为新的破案增长点,但也正是由于视频监控大规模建设,给刑侦破案带来一系列问题,主要表现在如下几个方面:(I)国内外监控厂家种类多、方法各异,其采用的视频编码格式各不相同,刑侦人员不但需要获取大量案件相关的视频,还需要收集各类设备的播放器,此举将会浪费宝贵的破案时间,延误破案时机;(2)现有的监控设备异构、视频格式多样,使得视频图像资源难以实现高效整合和共享,为智能化的侦查手段带来巨大障碍;(3)现有的视频转码技术效率低下,主要表现为设备只能处理一路转码,或只能利用CPU或GPU中的一种硬件资源,这极大程度增加了视频图像资源准备的时间损耗。
[0003]公开号为“ 102273205A”,名称为“以GPU加速的软件视频转码器”的中国专利,提出了一种运用GPU的多核心特征来分担视频转码工作量的方法和系统。该系统结合工业标准微软DXVA方法的用法,以便以GPU编码方案及缩放视频的中间步骤来加速视频解码,但存在不足的是不能对转码的过程进行实时的监测,无法通过CPU和GPU的使用情况来自适应的调整转码的策略,只能流水线的将GPU解码的数据送到编码器中进行编码从而完成转码工作,不能尽最大可能利用系统的资源,不能满足刑侦系统中对海量视频文件快速转码的需求。
[0004]公开号为“ 101908035A”,名称为“视频编解码方法、GPU及其与CPU的交互方法及系统”的中国专利,提出了一种GPU与CPU的交互系统、一种GPU和一种视频编码方法。利用GPU的并行计算,提高帧内视频编解码的速度,减少对CPU资源的占用,但存在的不足是缺少对对CPU和GPU编码选择的灵活性,不能支持众多视频监控设备视频编解码,不能满足智能化选择编码模式的需求。

【发明内容】

[0005]本发明目的在于克服上述现有技术的不足而提供一种利用CPU和GPU实现多路自适应并行转码的方法及系统,该方法根据系统的实时状态信息和先验知识,对监控视频信息判断是否开启一路转码进程进行转码,本发明能够实时掌握系统资源状态,不断开启转码进程,对多个文件或视频流进行转码,从而达到多路并行转码的目的。
[0006]实现本发明目的采用的技术方案是一种利用CPU和GPU实现多路自适应并行转码的方法,该方法包括:
[0007]获得监控视频信息,检测系统的实时状态信息,调用先验知识;并根据所述系统的实时状态信息和先验知识,对所述监控视频信息判断,如按监控视频信息进行转码所消耗的资源未达到最大负载,则开启一路转码进程,否则不开启转码进程;
[0008]开启转码进程后,采用与监控视频对应厂家的解码插件进行解码,解码后输出YUV数据;
[0009]对所述YUV数据用CPU资源进行编码或用GPU资源进行编码,直至转码结束生成新的文件。
[0010]此外,本发明还提供一种实现上述方法的系统,该系统包括:
[0011]自适应监测调度单元,用于获得监控视频信息,检测系统的实时状态信息,调用先验知识;并根据所述系统的实时状态信息和先验知识,对所述监控视频信息判断,如按监控视频信息进行转码所消耗的资源未达到最大负载,则开启一路转码进程,否则不开启转码进程;
[0012]多厂家视频解码单元,开启转码进程后,采用与监控视频对应厂家的解码插件进行解码,解码后输出YUV数据;以及
[0013]双模式视频编码单元,用于对所述YUV数据用CPU资源进行编码或用GPU资源进行编码,直至转码结束生成新的文件。
[0014]本发明方法能够根据系统的实时状态信息和先验知识,判断待转码视频的信息是否能够转码,如能转码则开启一路进程进行转码。由于本发明实时获取获得监控视频信息和检测系统的实时状态信息,能够不断开启转码进程,且能够同时CPU和GPU分别进行编码,从而实现多路并行转码。
【附图说明】
[0015]图1为本发明利用CPU和GPU实现多路自适应并行转码的系统结构框图。
[0016]图2为本发明利用CPU和GPU实现多路自适应并行转码的方法流程图。
【具体实施方式】
[0017]下面结合附图和具体实施例对本发明作进一步的详细说明。
[0018]如图1所示,本发明利用CPU和GPU实现多路自适应并行转码的系统包括:自适应监测调度单元1、多厂家视频解码单元2和双模式视频编码单元3。其中,
[0019]自适应监测调度单元I包括:文件/流预处理模块101、实时状态监测模块102、知识库模块103和决策与调度模块104。各模块的作用如下:
[0020]文件/流预处理模块101用于对现有监控录像文件、监控平台视频流进行识别,获取文件或视频流的厂家信息、画面分辨率、时长等信息,可根据这些信息和先验知识判定其转码所需要使用的资源。
[0021]实时状态监测模块102用于在监控录像文件、监控平台视频流进行转码的过程中,对整个系统的CPU、GPU和内存的实际使用情况进行实时的监测。
[0022]知识库模块103用于收集不同厂家、不同分辨率、不同时长下视频转码所需消耗的CPU或GPU资源,以及视频解码所需调用的厂家解码插件,形成下一转码时可以依靠的先验知识。
[0023]决策与调度模块104用于根据待转码视频的先验转码消耗资源情况和实时消耗资源情况,综合判定将要开启的转码进程是否符合系统的最低要求。如果判定启动转码,还需在此基础上选择相应的厂家解码插件进行解码,以及用CPU资源进行编码或用GPU资源进行编码。
[0024]多厂家视频解码单元2包括:文件解码框架模块201、视频流解码框架模块202和各厂家解码插件模块203,各模块的作用如下:
[0025]文件解码框架模块201用于针对待转码的监控录像文件,提供对其转码所需的框架支持,根据各厂家视频文件不同的信息自适应的选择最佳解码插件。
[0026]视频流解码框架模块202用于针对待转码的监控平台视频流,提供对其转码所需的框架支持,根据各厂家视频流不同的信息自适应的选择最佳解码插件。
[0027]各厂家解码插件模块203包括目前市场上主流的监控厂家的视频解码插件,用于对监控录像文件和视频流进行高效解码,提供编码所需的YUV数据流。
[0028]双模式视频编码单元3包括:CPU编码模块301和GPU编码模块302,各模块的作用如下:
[0029]CPU编码模块301用于利用CPU资源对已解码的YUV数据流进行编码,即利用软件算法对数据进行编码,可将解码数据编码为标准格式(如H.264、AVS)的视频文件,或非标准格式的视频文件;以及
[0030]GPU编码模块302用于利用GPU资源对已解码的YUV数据流进行编码,主要是指利用图形处理单元对数据进行编码,GPU资源包括但不限于NVIDIA显卡、Intel GPU、AMDGPU、微架构处理器、DSP的并行处理器等。同样可以将解码数据编码为标准格式或非标准格式的视频文件。
[0031]上述转码系统实现利用CPU和GPU多路自适应并行转码的方法包括以下步骤:
[0032]步骤S1:信息获取。获取录像文件、视频流以及系统实时状态等的相关信息,为进一步的调度与决策做准备。具体包括以下步骤:
[0033]步骤Sll:获取文件或视频流信息。自适应监测调度单元I中的文件/流预处理模块101获取录像文件或视频流的厂家信息、画面分辨率、时长等信息。
[0034]步骤S12:获取系统实时状态信息。自适应监测调度单元I的实时状态监测模块102对系统的实时状况、正在进行的转码进程进行实时的监测,收集相关信息,也为后
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1