掌桥专利:专业的专利平台
掌桥专利
首页

基于PID的视频流轮询解码的拉流控制系统及方法

文献发布时间:2023-06-19 09:40:06


基于PID的视频流轮询解码的拉流控制系统及方法

技术领域

本发明涉及视频流轮询解码的拉流控制技术领域,尤其涉及一种基于PID的视频流轮询解码的拉流控制系统及方法。

背景技术

在现有的视频流轮询解码方案中,采用多解码器混合解码,通过固定时间间隔的轮询机制进行视频流的轮询,但由于CPU和GPU解码能力不同,受网络带宽和解码能力的影响,采用固定的频率去连接视频流,难以保证解码器实时工作在满负荷状态,由于对视频流的连接时间没有算法进行控制,导致网络占用率波动很大,时而空闲,时而拥塞,对其他系统运行造成影响。

鉴于上述问题的存在,本设计人基于从事此类产品工程应用多年丰富的实务经验及专业知识,并配合学理的运用,积极加以研究创新,以期创设一种基于PID的视频流轮询解码的拉流控制系统及方法,使其更具有实用性。

发明内容

本发明中提供了一种基于PID的视频流轮询解码的拉流控制系统,从而有效解决背景技术中的问题。同时本发明中还请求保护一种基于PID的视频流轮询解码的拉流控制方法,具有同样的技术效果。

为了达到上述目的,本发明所采用的技术方案是:

基于PID的视频流轮询解码的拉流控制系统,包括解码模块、缓存模块和取流模块;

所述解码模块由以下解码器组成解码器线程池:c个CPU解码器,每个所述CPU解码器包括i路线程;g个GPU解码器,每个所述GPU解码器包括j路线程;其中,c、g、i、j均为任意正整数,所述解码模块具有统一的解码线程接口;

所述缓存模块由k个视频缓存区组成,每个所述视频缓存区的大小为a;其中,k为所述解码模块的线程总数,

所述取流模块由U路视频流线程组成视频流线程池;其中,每路所述视频流线程连接一路视频流,且视频流连接数量u根据所述解码模块的解码能力和所述缓存模块的缓存能力,通过PID算法动态调节。

进一步地,每路所述视频流线程每次接收t秒视频流片段,t为任意正整数;且所述视频流片段大小

进一步地,k路所述解码器线程同时获取所述视频流片段,且并发解码。

进一步地,所述PID算法的模型公式如下:

其中:

进一步地,所述PID算法的简化模型公式为:

其中:

基于PID的视频流轮询解码的拉流控制方法,包括以下步骤:

创建并设置解码器线程池:

所述解码器线程池采用c个CPU解码器,每个所述CPU解码器包括i路线程;g个GPU解码器,每个所述GPU解码器包括j路线程;其中,c、g、i、j均为任意正整数,且令所述解码模块提供统一的解码线程接口;

创建并设置视频缓存区:

所述视频缓存区采用k个视频缓存区,每个所述视频缓存区的大小为a;其中,k为所述解码模块的线程总数,

创建并设置视频流线程池:

所述视频流线程池采用U路视频流线程;其中,每路所述视频流线程连接一路视频流,且视频流连接数量u根据所述解码模块的解码能力和所述缓存模块的缓存能力,通过PID算法动态调节。

进一步地,每次令每路所述视频流线程接收t秒视频流片段,t为任意正整数;且所述视频流片段大小

进一步地,令k路所述解码器线程同时获取所述视频流片段,且并发解码。

进一步地,采用的所述PID算法的模型公式如下:

其中:

进一步地,对所述PID算法的模型公式进行离散化处理,所述PID算法简化后的模型公式为:

其中:

通过上述技术方案,本发明的有益效果是:

本发明中封装CPU和GPU解码器,提供统一的解码线程接口,使得系统可以完全利用硬件资源进行解码,添加PID闭环控制算法,动态控制视频流连接数量,使得解码器时刻工作在满负荷状态,克服了网络占用率波动大的问题,有效避免了对其他系统运行所造成的影响。

附图说明

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明中记载的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1为解码模块的框架图;

图2为PID算法的应用方式示意图;

图3为每个视频流线程对视频流的接收示意图;

图4为基于PID的视频流轮询解码的拉流控制方法的具体流程图;

图5为基于PID的视频流轮询解码的拉流控制方法的控制结果示意图。

具体实施方式

下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。

除非另有定义,本文所使用的所有的技术和科学术语与属于本发明的技术领域的技术人员通常理解的含义相同。本文中在本发明的说明书中所使用的术语只是为了描述具体的实施例的目的,不是旨在于限制本发明。本文所使用的术语“及/或”包括一个或多个相关的所列项目的任意的和所有的组合。

基于PID的视频流轮询解码的拉流控制系统,包括解码模块、缓存模块和取流模块;如图1所示,解码模块由以下解码器组成解码器线程池:c个CPU解码器,每个CPU解码器包括i路线程;g个GPU解码器,每个GPU解码器包括j路线程;其中,c、g、i、j均为任意正整数,解码模块具有统一的解码线程接口。缓存模块由k个视频缓存区组成,每个视频缓存区的大小为a;其中,k为解码模块的线程总数,

本发明中封装CPU和GPU解码器,提供统一的解码线程接口,使得系统可以完全利用硬件资源进行解码,添加PID闭环控制算法,动态控制视频流连接数量,使得解码器时刻工作在满负荷状态,克服了网络占用率波动大的问题,有效避免了对其他系统运行所造成的影响。

为了进一步提高系统效率,提高系统的稳定性,如图3所示,每路视频流线程每次接收t秒视频流片段,t为任意正整数,即每个视频流线程在接收t秒视频流后断开,从而保证系统内部的统一性,且视频流片段大小

解码完成后,输出对应的视频帧,保存于缓存区,根据解码模块的解码能力和缓存模块的缓存能力可具体为根据视频帧的输出时间和数量,PID算法的模型公式如下:

其中:

经过离散化之后,公式可以简化为:

其中:

根据PID控制模型的输出,调整视频流线程数量u,以达到最高的稳定解码能效,当获取全部视频帧后,结束整个解码流程。

基于PID的视频流轮询解码的拉流控制方法,包括以下步骤:

创建并设置解码器线程池:解码器线程池采用c个CPU解码器,每个CPU解码器包括i路线程;g个GPU解码器,每个GPU解码器包括j路线程;其中,c、g、i、j均为任意正整数,且令解码模块提供统一的解码线程接口;

创建并设置视频缓存区:视频缓存区采用k个视频缓存区,每个视频缓存区的大小为a;其中,k为解码模块的线程总数,

创建并设置视频流线程池:视频流线程池采用U路视频流线程;其中,每路视频流线程连接一路视频流,且视频流连接数量u根据解码模块的解码能力和缓存模块的缓存能力,通过PID算法动态调节。

如图4所示,在具体实施过程中,上述基于PID的视频流轮询解码的拉流控制方法可按照以下步骤顺序进行:

步骤一:初始化取流模块、缓存模块和解码模块三个主要模块,创建解码器线程池、视频流线程池和视频缓存区;

步骤二:设置解码器线程池;本发明使用了CPU和GPU混合解码,提供统一的解码线程接口;其中,每个CPU解码器的解码能力是i路,GPU的解码能力为j路,本实施例中创建一个包含c个CPU解码器,g路GPU解码器的解码模块的线程总数为

步骤三:设置视频缓存区;虽然在不同的负载下,解码能力不同,占用的解码器数量不同,但是为了保证视频缓存区资源不被耗尽,将视频缓存区的目标大小设置为系统解码器总的解码能力所需的缓存区

步骤四:设置视频流线程池;数量为U,每个线程连接一路视频流,优选该设置后期动态可调;

步骤五:获取视频流;根据视频流线程数链接相应数量的视频流,为了针对不同的视频建立一致化的解码过程,优选每次令每路视频流线程接收t秒视频流片段,t为任意正整数;

步骤六:将接收到的每路视频流片段数据存储于缓存区,则共有u段,其中,视频流片段大小

步骤七:k个解码器同时从视频缓存区获取视频流数据片段;

步骤八:k个解码器线程并发解码相应的视频流片段数据,

步骤九:输出对应的视频帧,保存于视频缓存区;

步骤十:本实施例中,根据视频帧的输出时间和数量作为解码模块解码能力和缓存模块缓存能力的判断依据,通过PID算法动态计算选取视频流线程数量u,PID算法的模型公式如下:

其中:

经过离散化之后,公式可以简化为:

其中:

步骤十一:根据PID控制模型的输出,调整视频流线程数量U,以达到最高的稳定解码能效;

步骤十二:当获取全部视频帧后,结束整个解码流程。

如图5所示,显示了本发明中基于PID的视频流轮询解码的拉流控制系统和方法的测试验证结果:

当系统启动时,缓存区长度为0,为了快速的达到视频缓存区大小为M的目标值,PID的输出会逐渐增大,即视频流连接数量u会迅速增加。视频缓存区中待解码视频数量也随之增大,当邻近M时,视频流连接数量u逐渐减小,但视频缓存区视频数量会超过M,出现超调。随着视频流连接数量u进一步减小,视频缓存区长度逐渐减小并稳定在M的一个小范围内,视频流连接数量u也会稳定在一个小范围内,此时系统达到稳态。当系统解码能力发生变化,视频流连接数量u也会及时跟进动态调整,使得视频缓存区长度始终维持在一个范围内,保证系统视频缓存区不会溢出或者耗尽。

本行业的技术人员应该了解,本发明不受上述实施例的限制,上述实施例和说明书中描述的只是说明本发明的原理,在不脱离本发明精神和范围的前提下,本发明还会有各种变化和改进,这些变化和改进都落入要求保护的本发明范围内。本发明要求保护范围由所附的权利要求书及其等效物界定。

相关技术
  • 基于PID的视频流轮询解码的拉流控制系统及方法
  • 基于PID的视频流轮询解码的拉流控制系统及方法
技术分类

06120112250720