CN112261412B - 基于pid的视频流轮询解码的拉流控制***及方法 - Google Patents
基于pid的视频流轮询解码的拉流控制***及方法 Download PDFInfo
- Publication number
- CN112261412B CN112261412B CN202011239814.2A CN202011239814A CN112261412B CN 112261412 B CN112261412 B CN 112261412B CN 202011239814 A CN202011239814 A CN 202011239814A CN 112261412 B CN112261412 B CN 112261412B
- Authority
- CN
- China
- Prior art keywords
- video
- decoding
- video stream
- pid
- module
- 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
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/42—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/44—Decoders specially adapted therefor, e.g. video decoders which are asymmetric with respect to the encoder
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/40—Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
- H04N21/41—Structure of client; Structure of client peripherals
- H04N21/426—Internal components of the client ; Characteristics thereof
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/40—Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
- H04N21/43—Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
- H04N21/433—Content storage operation, e.g. storage operation in response to a pause request, caching operations
- H04N21/4331—Caching operations, e.g. of an advertisement for later insertion during playback
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Compression Or Coding Systems Of Tv Signals (AREA)
Abstract
本发明涉及基于PID的视频流轮询解码的拉流控制***,解码模块中c个CPU解码器每个包括i路线程,g个GPU解码器每个包括j路线程,解码模块具有统一的解码线程接口;缓存模块由k个视频缓存区组成,每个视频缓存区的大小为a,;取流模块由U路视频流线程组成,每路视频流线程连接一路视频流,且视频流连接数量u根据解码模块的解码能力和缓存模块的缓存能力,通过PID算法动态调节。本发明中封装CPU和GPU解码器,提供统一的解码线程接口,使得***可以完全利用硬件资源进行解码,添加PID闭环控制算法,动态控制视频流连接数量,使得解码器时刻工作在满负荷状态。本发明中还请求保护一种基于PID的视频流轮询解码的拉流控制方法,具有同样的技术效果。
Description
技术领域
本发明涉及视频流轮询解码的拉流控制技术领域,尤其涉及一种基于PID的视频流轮询解码的拉流控制***及方法。
背景技术
在现有的视频流轮询解码方案中,采用多解码器混合解码,通过固定时间间隔的轮询机制进行视频流的轮询,但由于CPU和GPU解码能力不同,受网络带宽和解码能力的影响,采用固定的频率去连接视频流,难以保证解码器实时工作在满负荷状态,由于对视频流的连接时间没有算法进行控制,导致网络占用率波动很大,时而空闲,时而拥塞,对其他***运行造成影响。
鉴于上述问题的存在,本设计人基于从事此类产品工程应用多年丰富的实务经验及专业知识,并配合学理的运用,积极加以研究创新,以期创设一种基于PID的视频流轮询解码的拉流控制***及方法,使其更具有实用性。
发明内容
本发明中提供了一种基于PID的视频流轮询解码的拉流控制***,从而有效解决背景技术中的问题。同时本发明中还请求保护一种基于PID的视频流轮询解码的拉流控制方法,具有同样的技术效果。
为了达到上述目的,本发明所采用的技术方案是:
基于PID的视频流轮询解码的拉流控制***,包括解码模块、缓存模块和取流模块;
所述解码模块由以下解码器组成解码器线程池:c个CPU解码器,每个所述CPU解码器包括i路线程;g个GPU解码器,每个所述GPU解码器包括j路线程;其中,c、g、i、j均为任意正整数,所述解码模块具有统一的解码线程接口;
所述取流模块由U路视频流线程组成视频流线程池;其中,每路所述视频流线程连接一路视频流,且视频流连接数量u根据所述解码模块的解码能力和所述缓存模块的缓存能力,通过PID算法动态调节。
进一步地,k路所述解码器线程同时获取所述视频流片段,且并发解码。
进一步地,所述PID算法的模型公式如下:
其中:
进一步地,所述PID算法的简化模型公式为:
其中:
基于PID的视频流轮询解码的拉流控制方法,包括以下步骤:
创建并设置解码器线程池:
所述解码器线程池采用c个CPU解码器,每个所述CPU解码器包括i路线程;g个GPU解码器,每个所述GPU解码器包括j路线程;其中,c、g、i、j均为任意正整数,且令所述解码模块提供统一的解码线程接口;
创建并设置视频缓存区:
创建并设置视频流线程池:
所述视频流线程池采用U路视频流线程;其中,每路所述视频流线程连接一路视频流,且视频流连接数量u根据所述解码模块的解码能力和所述缓存模块的缓存能力,通过PID算法动态调节。
进一步地,令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为解码模块的线程总数, ,a为每路解码器线程所需的缓存区大小。取流模块由U路视频流线程组成视频流线程池,其中,每路视频流线程连接一路视频流,且如图2所示,视频流连接数量u根据解码模块的解码能力和缓存模块的缓存能力,通过PID算法动态调节。
本发明中封装CPU和GPU解码器,提供统一的解码线程接口,使得***可以完全利用硬件资源进行解码,添加PID闭环控制算法,动态控制视频流连接数量,使得解码器时刻工作在满负荷状态,克服了网络占用率波动大的问题,有效避免了对其他***运行所造成的影响。
为了进一步提高***效率,提高***的稳定性,如图3所示,每路视频流线程每次接收t秒视频流片段,t为任意正整数,即每个视频流线程在接收t秒视频流后断开,从而保证***内部的统一性,且视频流片段大小 。其中,优选k路解码器线程同时获取视频流片段,且并发解码,从而保证各路解码器的连续高效解码,便于运算和控制,并行的工作方式可保证每个解码器的满负荷状态。
解码完成后,输出对应的视频帧,保存于缓存区,根据解码模块的解码能力和缓存模块的缓存能力可具体为根据视频帧的输出时间和数量,PID算法的模型公式如下:
其中:
经过离散化之后,公式可以简化为:
其中:
根据PID控制模型的输出,调整视频流线程数量u,以达到最高的稳定解码能效,当获取全部视频帧后,结束整个解码流程。
基于PID的视频流轮询解码的拉流控制方法,包括以下步骤:
创建并设置解码器线程池:解码器线程池采用c个CPU解码器,每个CPU解码器包括i路线程;g个GPU解码器,每个GPU解码器包括j路线程;其中,c、g、i、j均为任意正整数,且令解码模块提供统一的解码线程接口;
创建并设置视频流线程池:视频流线程池采用U路视频流线程;其中,每路视频流线程连接一路视频流,且视频流连接数量u根据解码模块的解码能力和缓存模块的缓存能力,通过PID算法动态调节。
如图4所示,在具体实施过程中,上述基于PID的视频流轮询解码的拉流控制方法可按照以下步骤顺序进行:
步骤一:初始化取流模块、缓存模块和解码模块三个主要模块,创建解码器线程池、视频流线程池和视频缓存区;
步骤二:设置解码器线程池;本发明使用了CPU和GPU混合解码,提供统一的解码线程接口;其中,每个CPU解码器的解码能力是i路,GPU的解码能力为j路,本实施例中创建一个包含c个CPU解码器,g路GPU解码器的解码模块的线程总数为的线程池;
步骤四:设置视频流线程池;数量为U,每个线程连接一路视频流,优选该设置后期动态可调;
步骤五:获取视频流;根据视频流线程数链接相应数量的视频流,为了针对不同的视频建立一致化的解码过程,优选每次令每路视频流线程接收t秒视频流片段,t为任意正整数;
步骤七:k个解码器同时从视频缓存区获取视频流数据片段;
步骤八:k个解码器线程并发解码相应的视频流片段数据,
步骤九:输出对应的视频帧,保存于视频缓存区;
步骤十:本实施例中,根据视频帧的输出时间和数量作为解码模块解码能力和缓存模块缓存能力的判断依据,通过PID算法动态计算选取视频流线程数量u,PID算法的模型公式如下:
其中:
经过离散化之后,公式可以简化为:
其中:
步骤十一:根据PID控制模型的输出,调整视频流线程数量U,以达到最高的稳定解码能效;
步骤十二:当获取全部视频帧后,结束整个解码流程。
如图5所示,显示了本发明中基于PID的视频流轮询解码的拉流控制***和方法的测试验证结果:
当***启动时,缓存区长度为0,为了快速的达到视频缓存区大小为M的目标值,PID的输出会逐渐增大,即视频流连接数量u会迅速增加。视频缓存区中待解码视频数量也随之增大,当邻近M时,视频流连接数量u逐渐减小,但视频缓存区视频数量会超过M,出现超调。随着视频流连接数量u进一步减小,视频缓存区长度逐渐减小并稳定在M的一个小范围内,视频流连接数量u也会稳定在一个小范围内,此时***达到稳态。当***解码能力发生变化,视频流连接数量u也会及时跟进动态调整,使得视频缓存区长度始终维持在一个范围内,保证***视频缓存区不会溢出或者耗尽。
本行业的技术人员应该了解,本发明不受上述实施例的限制,上述实施例和说明书中描述的只是说明本发明的原理,在不脱离本发明精神和范围的前提下,本发明还会有各种变化和改进,这些变化和改进都落入要求保护的本发明范围内。本发明要求保护范围由所附的权利要求书及其等效物界定。
Claims (8)
1.基于PID的视频流轮询解码的拉流控制***,其特征在于,包括解码模块、缓存模块和取流模块;
所述解码模块由以下解码器组成解码器线程池:c个CPU解码器,每个所述CPU解码器包括i路线程;g个GPU解码器,每个所述GPU解码器包括j路线程;其中,c、g、i、j均为任意正整数,所述解码模块具有统一的解码线程接口;
所述取流模块由U路视频流线程组成视频流线程池;其中,每路所述视频流线程连接一路视频流,且视频流连接数量u根据所述解码模块的解码能力和所述缓存模块的缓存能力,通过PID算法动态调节;
所述PID算法的模型公式如下:
其中:
3.根据权利要求2所述的基于PID的视频流轮询解码的拉流控制***,其特征在于,
k路所述解码器线程同时获取所述视频流片段,且并发解码。
5.基于PID的视频流轮询解码的拉流控制方法,其特征在于,包括以下步骤:
创建并设置解码器线程池:
所述解码器线程池采用c个CPU解码器,每个所述CPU解码器包括i路线程;g个GPU解码器,每个所述GPU解码器包括j路线程;其中,c、g、i、j均为任意正整数,且令解码器组成的解码模块提供统一的解码线程接口;
创建并设置视频缓存区:
创建并设置视频流线程池:
所述视频流线程池采用U路视频流线程;其中,每路所述视频流线程连接一路视频流,且视频流连接数量u根据所述解码模块的解码能力和视频缓存区组成的缓存模块的缓存能力,通过PID算法动态调节;
采用的所述PID算法的模型公式如下:
其中:
7.根据权利要求6所述的基于PID的视频流轮询解码的拉流控制方法,其特征在于,
令k路所述解码器线程同时获取所述视频流片段,且并发解码。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011239814.2A CN112261412B (zh) | 2020-11-09 | 2020-11-09 | 基于pid的视频流轮询解码的拉流控制***及方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011239814.2A CN112261412B (zh) | 2020-11-09 | 2020-11-09 | 基于pid的视频流轮询解码的拉流控制***及方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112261412A CN112261412A (zh) | 2021-01-22 |
CN112261412B true CN112261412B (zh) | 2021-04-27 |
Family
ID=74266549
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011239814.2A Active CN112261412B (zh) | 2020-11-09 | 2020-11-09 | 基于pid的视频流轮询解码的拉流控制***及方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112261412B (zh) |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101272486A (zh) * | 2008-04-10 | 2008-09-24 | 清华大学 | 基于pid控制和接收帧率稳定模型的视频传输控制方法 |
CN102404576A (zh) * | 2011-11-30 | 2012-04-04 | 国云科技股份有限公司 | 云终端解码器及其负载均衡算法和gpu的解码算法 |
CN106878736A (zh) * | 2017-03-17 | 2017-06-20 | 郑州云海信息技术有限公司 | 一种视频编解码的方法与装置 |
CN107493510A (zh) * | 2017-09-19 | 2017-12-19 | 武汉斗鱼网络科技有限公司 | 直播间内直播流播放方法、装置、计算机存储介质及设备 |
WO2020019140A1 (zh) * | 2018-07-23 | 2020-01-30 | 深圳市大疆创新科技有限公司 | 视频处理方法、终端设备、机器可读存储介质 |
-
2020
- 2020-11-09 CN CN202011239814.2A patent/CN112261412B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101272486A (zh) * | 2008-04-10 | 2008-09-24 | 清华大学 | 基于pid控制和接收帧率稳定模型的视频传输控制方法 |
CN102404576A (zh) * | 2011-11-30 | 2012-04-04 | 国云科技股份有限公司 | 云终端解码器及其负载均衡算法和gpu的解码算法 |
CN106878736A (zh) * | 2017-03-17 | 2017-06-20 | 郑州云海信息技术有限公司 | 一种视频编解码的方法与装置 |
CN107493510A (zh) * | 2017-09-19 | 2017-12-19 | 武汉斗鱼网络科技有限公司 | 直播间内直播流播放方法、装置、计算机存储介质及设备 |
WO2020019140A1 (zh) * | 2018-07-23 | 2020-01-30 | 深圳市大疆创新科技有限公司 | 视频处理方法、终端设备、机器可读存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN112261412A (zh) | 2021-01-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10523947B2 (en) | Server-based encoding of adjustable frame rate content | |
CN106648904B (zh) | 一种流式数据处理自适应速率控制方法 | |
CN109194984B (zh) | 一种基于边缘计算的视频帧调度方法 | |
CN103986914B (zh) | 无线视频监控***中基于客户端数量的码率自适应方法 | |
CN104394484A (zh) | 一种无线实时流媒体传输方法 | |
Li et al. | Joint communication and computational resource allocation for qoe-driven point cloud video streaming | |
US20150350604A1 (en) | Method and system for multiparty video conferencing | |
US20160342887A1 (en) | Scalable neural network system | |
CN104539972A (zh) | 一种多核处理器中视频并行解码的控制方法和装置 | |
CN101755462A (zh) | 图像编码装置以及图像编码方法 | |
GB2518909A (en) | Encoder adaptation | |
US11212537B2 (en) | Side information for video data transmission | |
US20160180496A1 (en) | Information processor, information processing method, and program | |
CN112261412B (zh) | 基于pid的视频流轮询解码的拉流控制***及方法 | |
CN105913001A (zh) | 基于聚类的在线式多人脸图像处理的方法 | |
WO2022000298A1 (en) | Reinforcement learning based rate control | |
WO2018103360A1 (zh) | 一种提高图像流畅度的方法及*** | |
He et al. | End-edge coordinated joint encoding and neural enhancement for low-light video analytics | |
CN102724507B (zh) | 一种gpu加速编码器码率控制方法 | |
KR100722314B1 (ko) | Dvs를 이용한 멀티미디어 신호처리 장치 | |
CN100428138C (zh) | 用于改变输出速率的方法和设备 | |
CN112543373B (zh) | 一种转码控制方法、装置及电子设备 | |
CN109218724A (zh) | 一种数据编码方法、装置及存储设备和终端设备 | |
Xing et al. | Performance evaluation of distributed computing over optical disaggregated data centers | |
CN109120480B (zh) | 基于数据中心的链路优化方法及装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |