CN104980752B - 利用cpu和gpu实现多路自适应并行转码的方法及系统 - Google Patents
利用cpu和gpu实现多路自适应并行转码的方法及系统 Download PDFInfo
- Publication number
- CN104980752B CN104980752B CN201510319024.8A CN201510319024A CN104980752B CN 104980752 B CN104980752 B CN 104980752B CN 201510319024 A CN201510319024 A CN 201510319024A CN 104980752 B CN104980752 B CN 104980752B
- Authority
- CN
- China
- Prior art keywords
- transcoding
- video
- resource
- decoding
- gpu
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Landscapes
- Compression Or Coding Systems Of Tv Signals (AREA)
- Closed-Circuit Television Systems (AREA)
Abstract
本发明涉及一种利用CPU和GPU实现多路自适应并行转码的方法及系统,该方法包括:获得监控视频信息,检测系统的实时状态信息,调用先验知识;然后对所述监控视频信息判断,如按监控视频信息进行转码所消耗的资源未达到最大负载,则开启一路转码进程;开启转码进程后,采用与监控视频对应厂家的解码插件进行解码,解码后输出YUV数据;对所述YUV数据用CPU资源进行编码或用GPU资源进行编码,直至转码结束生成新的文件。本发明方法能够实时获取获得监控视频信息和检测系统的实时状态信息,能够不断开启转码进程,且能够同时CPU和GPU分别进行编码,从而实现多路并行转码。
Description
技术领域
本发明涉及刑侦领域中对监控视频的处理,具体为一种利用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将收集到的实时资源消耗数据进行学习,形成可以参考使用的先验知识,并记录到知识库中。
如此,系统不停地对资源使用情况进行监测,不断形成新的知识库,并根据当前最新情况自适应选择是否开启更多的转码进程,从而实现多路自适应并行转码。
Claims (2)
1.一种利用CPU和GPU实现多路自适应并行转码的方法,其特征在于,包括:
获得监控视频信息,检测系统的实时状态信息,调用先验知识;并根据所述系统的实时状态信息和先验知识,对所述监控视频信息判断,如按监控视频信息进行转码所消耗的资源未达到最大负载,则开启一路转码进程,否则不开启转码进程;
开启转码进程后,采用与监控视频对应厂家的解码插件进行解码,解码后输出YUV数据;
对所述YUV数据用CPU资源进行编码或用GPU资源进行编码,直至转码结束生成新的文件;
在转码时收集不同厂家、不同分辨率、不同时长下视频转码所需消耗的CPU或GPU资源,以及视频解码所需调用的厂家解码插件,形成下一转码时可以依靠的先验知识;
所述监控视频信息包括监控视频所属厂家信息、设备版本信息、画面分辨率、帧率、视频开始时间和时长;
所述转码需要消耗的资源信息包括解码CPU占用率、编码CPU占用率、编码GPU使用率和内存使用情况;
所述系统的实时状态信息包括CPU、GPU和内存的实时状态信息,以及已开启的转码进程的资源使用情况。
2.一种实现权利要求1所述方法的系统,其特征在于,包括:
自适应监测调度单元,用于获得监控视频信息,检测系统的实时状态信息,调用先验知识;并根据所述系统的实时状态信息和先验知识,对所述监控视频信息判断,如按监控视频信息进行转码所消耗的资源未达到最大负载,则开启一路转码进程,否则不开启转码进程;
多厂家视频解码单元,开启转码进程后,采用与监控视频对应厂家的解码插件进行解码,解码后输出YUV数据;以及
双模式视频编码单元,用于对所述YUV数据用CPU资源进行编码或用GPU资源进行编码,直至转码结束生成新的文件;
所述自适应监测调度单元包括:
文件/流预处理模块,用于对监控视频进行识别,获取文件或视频流的厂家信息、画面分辨率和时长,根据这些信息和先验知识判定其转码所需要使用的资源;
实时状态监测模块,用于对整个系统的CPU、GPU和内存的实际使用状态进行实时的监测;
知识库模块,用于收集不同厂家、不同分辨率、不同时长下视频转码所需消耗的CPU或GPU资源,以及视频解码所需调用的厂家解码插件,形成转码时可以依靠的先验知识;以及
决策与调度模块,用于根据待转码视频的先验转码消耗资源情况和实时消耗资源情况,综合判定将要开启的转码进程是否符合系统的最低要求;如果判定启动转码,还需在此基础上选择相应的厂家解码插件进行解码,以及用CPU资源进行编码或用GPU资源进行编码;
所述多厂家视频解码单元还包括:
文件解码框架模块,用于根据各厂家视频文件不同的信息自适应的选择最佳解码插件;
视频流解码框架模块,用于根据各厂家视频流不同的信息自适应的选择最佳解码插件;以及
各厂家解码插件模块,用于对监控录像文件和视频流进行高效解码,生成编码所需的YUV数据流;
所述双模式视频编码单元还包括:
CPU编码模块,用于利用CPU资源对已解码的YUV数据流进行编码;以及
GPU编码模块,用于利用GPU资源对已解码的YUV数据流进行编码。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510319024.8A CN104980752B (zh) | 2015-06-11 | 2015-06-11 | 利用cpu和gpu实现多路自适应并行转码的方法及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510319024.8A CN104980752B (zh) | 2015-06-11 | 2015-06-11 | 利用cpu和gpu实现多路自适应并行转码的方法及系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104980752A CN104980752A (zh) | 2015-10-14 |
CN104980752B true CN104980752B (zh) | 2018-10-02 |
Family
ID=54276774
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510319024.8A Active CN104980752B (zh) | 2015-06-11 | 2015-06-11 | 利用cpu和gpu实现多路自适应并行转码的方法及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN104980752B (zh) |
Families Citing this family (20)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105430408B (zh) * | 2015-12-04 | 2018-07-06 | 武汉斗鱼网络科技有限公司 | 一种基于Intel、AMD和Nvidia三平台的H264硬件解码系统 |
CN105491387B (zh) * | 2015-12-04 | 2019-06-21 | 武汉斗鱼网络科技有限公司 | 一种基于Intel、AMD和Nvidia三平台的H264硬件编码系统 |
CN105898315A (zh) * | 2015-12-07 | 2016-08-24 | 乐视云计算有限公司 | 视频转码方法和装置系统 |
CN106888400B (zh) * | 2015-12-15 | 2019-05-10 | 中国电信股份有限公司 | 一种用于实现转码任务调度的方法和系统 |
CN106412598A (zh) * | 2016-09-13 | 2017-02-15 | 中山大学 | 基于cuda显卡编码的无线视频传输系统及其传输方法 |
WO2018165869A1 (zh) * | 2017-03-14 | 2018-09-20 | 深圳中兴力维技术有限公司 | 视频监控系统、客户端和信令交互服务器及控制方法 |
CN107404648B (zh) * | 2017-08-24 | 2019-12-03 | 中南大学 | 一种基于hevc的视频多路转码方法 |
CN108769616A (zh) * | 2018-06-21 | 2018-11-06 | 泰华智慧产业集团股份有限公司 | 一种基于rtsp协议的实时视频无插件预览方法及系统 |
CN109561324B (zh) * | 2018-10-23 | 2020-12-29 | 中国科学院计算技术研究所 | 软件定义的视频处理系统和处理方法 |
CN109474827B (zh) * | 2018-12-03 | 2022-11-29 | 四川巧夺天工信息安全智能设备有限公司 | 监控视频快速转码的方法 |
CN110365962B (zh) * | 2019-07-17 | 2021-08-17 | Oppo广东移动通信有限公司 | 色域转换处理方法、装置以及电子设备 |
CN112399252B (zh) * | 2019-08-14 | 2023-03-14 | 浙江宇视科技有限公司 | 软硬解码控制方法、装置及电子设备 |
CN110418144A (zh) * | 2019-08-28 | 2019-11-05 | 成都索贝数码科技股份有限公司 | 一种基于nvidia gpu实现一入多出转码多码率视频文件的方法 |
CN111050179B (zh) * | 2019-12-30 | 2022-04-22 | 北京奇艺世纪科技有限公司 | 一种视频转码方法及装置 |
CN111666115B (zh) * | 2020-05-27 | 2023-11-07 | 杭州数澜科技有限公司 | 用于寻找引擎插件的装置、方法及存储介质 |
CN111629233B (zh) * | 2020-05-29 | 2022-03-25 | 北京华夏电通科技股份有限公司 | 音视频转码方法及装置 |
CN112543374A (zh) * | 2020-11-30 | 2021-03-23 | 联想(北京)有限公司 | 一种转码控制方法、装置及电子设备 |
CN112835651B (zh) * | 2021-04-01 | 2023-10-20 | 中国空空导弹研究院 | 一种多路图像并行解码处理方法 |
CN113727112B (zh) * | 2021-09-23 | 2024-04-16 | 北京车和家信息技术有限公司 | 视频转码方法、装置、电子设备和介质 |
CN115297328B (zh) * | 2022-10-10 | 2023-01-20 | 湖南马栏山视频先进技术研究院有限公司 | 面向分布式集群的多节点并行视频转码方法 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101908035A (zh) * | 2010-07-30 | 2010-12-08 | 北京华傲精创科技开发有限公司 | 视频编解码方法、gpu及其与cpu的交互方法及系统 |
CN101945278A (zh) * | 2010-09-15 | 2011-01-12 | 中国科学院深圳先进技术研究院 | 视频自适应转码方法和系统 |
CN102273205A (zh) * | 2008-11-04 | 2011-12-07 | 先进微装置公司 | 以gpu加速的软件视频转码器 |
CN102404567A (zh) * | 2011-11-03 | 2012-04-04 | 深圳市融创天下科技股份有限公司 | 一种网络监控视频流按需实时转码的系统和方法 |
CN102779539A (zh) * | 2012-07-24 | 2012-11-14 | 武汉大千信息技术有限公司 | 视频万能转码系统和方法 |
-
2015
- 2015-06-11 CN CN201510319024.8A patent/CN104980752B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102273205A (zh) * | 2008-11-04 | 2011-12-07 | 先进微装置公司 | 以gpu加速的软件视频转码器 |
CN101908035A (zh) * | 2010-07-30 | 2010-12-08 | 北京华傲精创科技开发有限公司 | 视频编解码方法、gpu及其与cpu的交互方法及系统 |
CN101945278A (zh) * | 2010-09-15 | 2011-01-12 | 中国科学院深圳先进技术研究院 | 视频自适应转码方法和系统 |
CN102404567A (zh) * | 2011-11-03 | 2012-04-04 | 深圳市融创天下科技股份有限公司 | 一种网络监控视频流按需实时转码的系统和方法 |
CN102779539A (zh) * | 2012-07-24 | 2012-11-14 | 武汉大千信息技术有限公司 | 视频万能转码系统和方法 |
Also Published As
Publication number | Publication date |
---|---|
CN104980752A (zh) | 2015-10-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104980752B (zh) | 利用cpu和gpu实现多路自适应并行转码的方法及系统 | |
CN104539972A (zh) | 一种多核处理器中视频并行解码的控制方法和装置 | |
CN101616323B (zh) | 对视频编码数据流进行解码的系统和方法 | |
CN105723676A (zh) | 通用屏幕内容编解码器 | |
CN106339484B (zh) | 一种视频智能检索处理的系统及方法 | |
CN103702124B (zh) | 一种转码加速方法和转码器 | |
CN102355572A (zh) | 一种基于云计算的大型高清视频监控系统 | |
CN205160696U (zh) | 一种具有多路视频拼接功能的显控设备 | |
CN105357570B (zh) | 一种基于帧分析的视频流分析方法及系统 | |
CN116980569A (zh) | 一种基于云计算的安全监控系统及方法 | |
CN101466039A (zh) | 一种视频解码装置和方法 | |
CN102802024A (zh) | 在服务器端实现的转码方法以及转码系统 | |
CN107948198A (zh) | 一种流媒体安全隔离网闸 | |
Enfedaque et al. | GPU implementation of bitplane coding with parallel coefficient processing for high performance image compression | |
Chang et al. | Distributed video transcoding on a heterogeneous computing platform | |
CN110569910A (zh) | 直播周期的处理方法、装置、设备及存储介质 | |
CN110430398A (zh) | 一种基于强化学习的视频编码分布式方法 | |
CN114359818B (zh) | 稼动率分析方法、装置、计算机设备及存储介质 | |
CN106162109B (zh) | 一种远程监视方法和监控设备 | |
CN103826138A (zh) | 实现音视频内容多种码率和编码格式云转码的系统及方法 | |
Li et al. | Digital Twin and Artificial Intelligence-Empowered Panoramic Video Streaming: Reducing Transmission Latency in the Extended Reality-Assisted Vehicular Metaverse | |
CN112040090A (zh) | 视频流处理方法、装置、电子设备和存储介质 | |
CN104980764A (zh) | 基于复杂度均衡的并行编解码方法、装置及系统 | |
CN112367628B (zh) | 一种电力物联网的智能化网络切片实例化方法及系统 | |
CN115695919A (zh) | 去中心化视频处理方法、装置,及电子设备 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |