首页> 中国专利> 利用CPU和GPU实现多路自适应并行转码的方法及系统

利用CPU和GPU实现多路自适应并行转码的方法及系统

摘要

本发明涉及一种利用CPU和GPU实现多路自适应并行转码的方法及系统,该方法包括:获得监控视频信息,检测系统的实时状态信息,调用先验知识;然后对所述监控视频信息判断,如按监控视频信息进行转码所消耗的资源未达到最大负载,则开启一路转码进程;开启转码进程后,采用与监控视频对应厂家的解码插件进行解码,解码后输出YUV数据;对所述YUV数据用CPU资源进行编码或用GPU资源进行编码,直至转码结束生成新的文件。本发明方法能够实时获取获得监控视频信息和检测系统的实时状态信息,能够不断开启转码进程,且能够同时CPU和GPU分别进行编码,从而实现多路并行转码。

著录项

  • 公开/公告号CN104980752A

    专利类型发明专利

  • 公开/公告日2015-10-14

    原文格式PDF

  • 申请/专利权人 武汉大千信息技术有限公司;

    申请/专利号CN201510319024.8

  • 发明设计人 严岩;

    申请日2015-06-11

  • 分类号H04N19/436(20140101);H04N19/40(20140101);H04N19/136(20140101);

  • 代理机构42104 武汉开元知识产权代理有限公司;

  • 代理人胡红林

  • 地址 430079 湖北省武汉市东湖开发区水蓝路水蓝郡329号

  • 入库时间 2023-12-18 11:33:29

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2018-10-02

    授权

    授权

  • 2015-11-18

    实质审查的生效 IPC(主分类):H04N19/436 申请日:20150611

    实质审查的生效

  • 2015-10-14

    公开

    公开

说明书

技术领域

本发明涉及刑侦领域中对监控视频的处理,具体为一种利用CPU和 GPU实现多路自适应并行转码的方法及系统,属于刑侦视频处理业务领域。

背景技术

随着平安城市的广泛建设和社会面监控的普及,刑侦破案工作越来越 倚重于视频监控资源。视频侦查技术已成为新的破案增长点,但也正是由 于视频监控大规模建设,给刑侦破案带来一系列问题,主要表现在如下几 个方面:(1)国内外监控厂家种类多、方法各异,其采用的视频编码格式 各不相同,刑侦人员不但需要获取大量案件相关的视频,还需要收集各类 设备的播放器,此举将会浪费宝贵的破案时间,延误破案时机;(2)现有 的监控设备异构、视频格式多样,使得视频图像资源难以实现高效整合和 共享,为智能化的侦查手段带来巨大障碍;(3)现有的视频转码技术效率 低下,主要表现为设备只能处理一路转码,或只能利用CPU或GPU中的 一种硬件资源,这极大程度增加了视频图像资源准备的时间损耗。

公开号为“102273205A”,名称为“以GPU加速的软件视频转码器”的 中国专利,提出了一种运用GPU的多核心特征来分担视频转码工作量的方 法和系统。该系统结合工业标准微软DXVA方法的用法,以便以GPU编码 方案及缩放视频的中间步骤来加速视频解码,但存在不足的是不能对转码 的过程进行实时的监测,无法通过CPU和GPU的使用情况来自适应的调 整转码的策略,只能流水线的将GPU解码的数据送到编码器中进行编码从 而完成转码工作,不能尽最大可能利用系统的资源,不能满足刑侦系统中 对海量视频文件快速转码的需求。

公开号为“101908035A”,名称为“视频编解码方法、GPU及其与CPU 的交互方法及系统”的中国专利,提出了一种GPU与CPU的交互系统、 一种GPU和一种视频编码方法。利用GPU的并行计算,提高帧内视频编 解码的速度,减少对CPU资源的占用,但存在的不足是缺少对对CPU和 GPU编码选择的灵活性,不能支持众多视频监控设备视频编解码,不能满 足智能化选择编码模式的需求。

发明内容

本发明目的在于克服上述现有技术的不足而提供一种利用CPU和GPU 实现多路自适应并行转码的方法及系统,该方法根据系统的实时状态信息 和先验知识,对监控视频信息判断是否开启一路转码进程进行转码,本发 明能够实时掌握系统资源状态,不断开启转码进程,对多个文件或视频流 进行转码,从而达到多路并行转码的目的。

实现本发明目的采用的技术方案是一种利用CPU和GPU实现多路自 适应并行转码的方法,该方法包括:

获得监控视频信息,检测系统的实时状态信息,调用先验知识;并根 据所述系统的实时状态信息和先验知识,对所述监控视频信息判断,如按 监控视频信息进行转码所消耗的资源未达到最大负载,则开启一路转码进 程,否则不开启转码进程;

开启转码进程后,采用与监控视频对应厂家的解码插件进行解码,解 码后输出YUV数据;

对所述YUV数据用CPU资源进行编码或用GPU资源进行编码,直至 转码结束生成新的文件。

此外,本发明还提供一种实现上述方法的系统,该系统包括:

自适应监测调度单元,用于获得监控视频信息,检测系统的实时状态 信息,调用先验知识;并根据所述系统的实时状态信息和先验知识,对所 述监控视频信息判断,如按监控视频信息进行转码所消耗的资源未达到最 大负载,则开启一路转码进程,否则不开启转码进程;

多厂家视频解码单元,开启转码进程后,采用与监控视频对应厂家的 解码插件进行解码,解码后输出YUV数据;以及

双模式视频编码单元,用于对所述YUV数据用CPU资源进行编码或 用GPU资源进行编码,直至转码结束生成新的文件。

本发明方法能够根据系统的实时状态信息和先验知识,判断待转码视频 的信息是否能够转码,如能转码则开启一路进程进行转码。由于本发明实 时获取获得监控视频信息和检测系统的实时状态信息,能够不断开启转码 进程,且能够同时CPU和GPU分别进行编码,从而实现多路并行转码。

附图说明

图1为本发明利用CPU和GPU实现多路自适应并行转码的系统结构 框图。

图2为本发明利用CPU和GPU实现多路自适应并行转码的方法流程 图。

具体实施方式

下面结合附图和具体实施例对本发明作进一步的详细说明。

如图1所示,本发明利用CPU和GPU实现多路自适应并行转码的系 统包括:自适应监测调度单元1、多厂家视频解码单元2和双模式视频编码 单元3。其中,

自适应监测调度单元1包括:文件/流预处理模块101、实时状态监测 模块102、知识库模块103和决策与调度模块104。各模块的作用如下:

文件/流预处理模块101用于对现有监控录像文件、监控平台视频流进 行识别,获取文件或视频流的厂家信息、画面分辨率、时长等信息,可根 据这些信息和先验知识判定其转码所需要使用的资源。

实时状态监测模块102用于在监控录像文件、监控平台视频流进行转 码的过程中,对整个系统的CPU、GPU和内存的实际使用情况进行实时的 监测。

知识库模块103用于收集不同厂家、不同分辨率、不同时长下视频转 码所需消耗的CPU或GPU资源,以及视频解码所需调用的厂家解码插件, 形成下一转码时可以依靠的先验知识。

决策与调度模块104用于根据待转码视频的先验转码消耗资源情况和 实时消耗资源情况,综合判定将要开启的转码进程是否符合系统的最低要 求。如果判定启动转码,还需在此基础上选择相应的厂家解码插件进行解 码,以及用CPU资源进行编码或用GPU资源进行编码。

多厂家视频解码单元2包括:文件解码框架模块201、视频流解码框架 模块202和各厂家解码插件模块203,各模块的作用如下:

文件解码框架模块201用于针对待转码的监控录像文件,提供对其转 码所需的框架支持,根据各厂家视频文件不同的信息自适应的选择最佳解 码插件。

视频流解码框架模块202用于针对待转码的监控平台视频流,提供对 其转码所需的框架支持,根据各厂家视频流不同的信息自适应的选择最佳 解码插件。

各厂家解码插件模块203包括目前市场上主流的监控厂家的视频解码 插件,用于对监控录像文件和视频流进行高效解码,提供编码所需的YUV 数据流。

双模式视频编码单元3包括:CPU编码模块301和GPU编码模块302, 各模块的作用如下:

CPU编码模块301用于利用CPU资源对已解码的YUV数据流进行编 码,即利用软件算法对数据进行编码,可将解码数据编码为标准格式(如 H.264、AVS)的视频文件,或非标准格式的视频文件;以及

GPU编码模块302用于利用GPU资源对已解码的YUV数据流进行编 码,主要是指利用图形处理单元对数据进行编码,GPU资源包括但不限于 NVIDIA显卡、Intel GPU、AMD GPU、微架构处理器、DSP的并行处理器 等。同样可以将解码数据编码为标准格式或非标准格式的视频文件。

上述转码系统实现利用CPU和GPU多路自适应并行转码的方法包括以 下步骤:

步骤S1:信息获取。获取录像文件、视频流以及系统实时状态等的相 关信息,为进一步的调度与决策做准备。具体包括以下步骤:

步骤S11:获取文件或视频流信息。自适应监测调度单元1中的文件/ 流预处理模块101获取录像文件或视频流的厂家信息、画面分辨率、时长 等信息。

步骤S12:获取系统实时状态信息。自适应监测调度单元1的实时状态 监测模块102对系统的实时状况、正在进行的转码进程进行实时的监测, 收集相关信息,也为后续步骤提供支持,系统实时状态信息包括CPU占用 率、GPU使用率、内存占用率。

步骤S13:获取知识库信息。通过在步骤S11中获取的厂家信息、画面 分辨率、时长等信息,在自适应监测调度单元1的知识库模块103中获取 其解码所将调用的厂家解码插件信息,还获取这些文件或视频流转码所需 要使用的资源,包括解码CPU占用率、编码CPU占用率、编码GPU使用 率、内存使用情况。

步骤S2:调度决策。根据步骤S1中获取的信息,判定是否开启一路转 码进程,并决策调用什么资源进行转码。具体包括以下步骤:

步骤S21:决策是否转码。自适应监测调度单元1的决策与调度模块104, 根据知识库先验知识和实时监测的资源使用情况,进行比较判断,如果系 统资源并未达到最大负载,则自动开启一路转码进程。否则,不开启转码 进程,且后续步骤不执行,系统重新执行步骤S1。

步骤S22:调度解码插件。自适应监测调度单元1的决策与调度模块104, 经过步骤S21确认开启新的转码进程后,将视频录像文件输入多厂家视频 解码单元2的文件解码框架模块201中,并通过步骤S13获取的相匹配的 厂家解码插件信息,决定调用各厂家解码插件模块203中相应的解码插件; 还可以将平台视频流输入多厂家视频解码单元2的视频流解码框架模块202 中,并通过步骤S13获取的相匹配的厂家解码插件信息,决定调用多厂家 视频解码单元2的各厂家解码插件模块203中相应的解码插件(指导步骤 S3)。

步骤S23:调度编码资源。自适应监测调度单元1的决策与调度模块104, 经过步骤S21确认开启新的转码进程后,根据知识库信息和系统实时状态 信息,决定编码的模式。将多厂家视频解码单元2解码输出的YUV数据输 入到双模式视频编码单元3中的CPU编码模块301,利用CPU资源对数据 编码(指导步骤S41),或者输入到双模式视频编码单元3中的GPU编码模 块302,利用GPU资源对数据编码(指导步骤S42)。

步骤S3:数据解码。多厂家视频解码单元2,在步骤S22的指导下,对 录像文件或者平台视频流进行解码,解码生成标准的YUV数据。

步骤S4:数据编码。双模式视频编码单元3,在步骤S23的指导下, 对多厂家视频解码单元2解码输出的YUV数据进行编码。具体包括:

步骤S41:CPU编码。双模式视频编码单元3的CPU编码模块301,利 用CPU资源,对多厂家视频解码单元2解码输出的YUV数据进行编码。 如执行此步骤,则不执行步骤S42。

步骤S42:GPU编码。双模式视频编码单元3的GPU编码模块302, 利用GPU资源,对多厂家视频解码单元2解码输出的YUV数据进行编码。 如执行此步骤,则不执行步骤S41。

步骤S5:信息收集与学习。转码开启后,自适应监测调度单元1的实 时状态监测模块102,监测到相应录像文件或平台视频流转码所需要使用的 资源,包括解码CPU占用率、编码CPU占用率、编码GPU使用率、内存 使用情况等。自适应监测调度单元1的知识库模块103将收集到的实时资 源消耗数据进行学习,形成可以参考使用的先验知识,并记录到知识库中。

如此,系统不停地对资源使用情况进行监测,不断形成新的知识库,并 根据当前最新情况自适应选择是否开启更多的转码进程,从而实现多路自 适应并行转码。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号