[发明专利]一种基于嵌入式设备的多线程流媒体缓存控制系统有效
申请号: | 201910517229.5 | 申请日: | 2019-06-14 |
公开(公告)号: | CN110312157B | 公开(公告)日: | 2021-09-14 |
发明(设计)人: | 杨春禄 | 申请(专利权)人: | 云南兆讯科技有限责任公司 |
主分类号: | H04N21/433 | 分类号: | H04N21/433;H04N21/443;H04N7/18 |
代理公司: | 昆明正原专利商标代理有限公司 53100 | 代理人: | 金耀生;于洪 |
地址: | 650000 云南省*** | 国省代码: | 云南;53 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 基于 嵌入式 设备 多线程 流媒体 缓存 控制系统 | ||
1.一种基于嵌入式设备的多线程流媒体缓存控制方法,其特征在于,包括调度线程、资源监控分析线程、缓存管理线程、数据管理线程和传感器管理线程;
调度线程分别与资源监控分析线程、缓存管理线程、数据管理线程和传感器管理线程相连;
数据管理线程还与缓存管理线程相连;其中,数据管理线程负责缓存管理线程中的数据的写入和读出;
调度线程用于资源监控分析线程、缓存管理线程、数据管理线程、传感器管理线程的创建、调度和销毁;
资源监控分析线程用于实时采集系统的运行状况,并对运行状况进行状态分析,并把结果反馈给调度线程;
缓存管理线程用于管理环形缓冲区,并根据调度线程的指令进行环形缓冲区的创建及环形缓冲区大小的调整,并将环形缓冲区的信息反馈至调度线程;
传感器管理线程用于对流媒体传感器进行管理,同时获取流媒体传感器的信息,并反馈至调度线程;
数据管理线程用于管理流媒体数据,所述的流媒体数据为调度线程从传感器管理线程中获取到的数据;数据管理线程从调度线程获取到数据以后,把该数据放入环形缓冲区,并供数据消费者取走数据;数据消费者取走数据时,数据管理线程需先将数据从缓存管理线程中读出;
对流媒体传感器进行管理具体包括传感器的编码速率调整、传感器数据的读取和封装;
调度线程根据资源监控分析线程和传感器管理线程传来的数据创建缓存管理线程;调度线程根据缓存管理线程传来的数据创建数据管理线程。
2.根据权利要求1所述的基于嵌入式设备的多线程流媒体缓存控制方法,其特征在于,所述的运行状况包括:CPU使用情况、内存使用情况、硬盘使用情况、网络传输状况和电源系统状态。
3.根据权利要求1所述的基于嵌入式设备的多线程流媒体缓存控制方法,其特征在于,包括如下步骤:
(1)系统上电开始工作,此时进入调度线程进行处理,调度线程创建资源监控分析线程和传感器管理线程;
(2)资源监控分析线程开始工作后,首先采集系统信息,获取系统的运行状况,并对运行状况进行状态分析,并把结果反馈给调度线程;
(3)传感器管理线程开始工作,获取流媒体传感器的型号、流媒体数据的格式及数据包大小,并把这些信息反馈至调度线程;
(4)调度线程接收到资源监控分析线程的数据和传感器管理线程的数据以后,计算出单包数据大小以及可支持最大数据包大小,并以此为依据创建缓存管理线程;
(5)缓存管理线程开始工作,根据调度线程传入的数据,创建环形缓冲区,并用数据指针标记环形缓冲区的起始位置和结束位置,并将环形缓冲区的信息反馈至调度线程;
(6)调度线程接收到缓存管理线程的数据后,开始创建数据管理线程,并把缓存管理线程的指针和传感器管理线程的数据传入数据管理线程;
(7)数据管理线程开始工作,一方面,通过调度线程不停的从传感器管理线程中获取数据,另一方面,开启数据处理服务等待数据消费者来取走数据;
至此,控制系统的初始化完成。
4.根据权利要求1所述的基于嵌入式设备的多线程流媒体缓存控制方法,其特征在于,包括如下步骤:
1)全部线程正常运行,调度线程阻塞等待资源监控线程、传感器管理线程、缓存管理线程、数据管理线程消息传入;
2)当系统资源发生变化,资源监控分析线程重新采集系统运行状况并传入调度线程,此时调度线程跳出阻塞,开始运行;
3)调度线程根据资源监控分析线程传入的数据,调用传感器管理线程获取流媒体数据,然后进行分析,对分析的结果有以下处理:
A.当前系统状态仍然可以负荷当前流媒体数据包大小,且系统空间充足,调度传感器管理线程判断是否需要调整更大的数据包,如果需要,则调度缓存管理线程进行内存扩充,如果不需要,则忽略本次变化;
B.当前系统状态仍然可以负荷当前流媒体数据包大小,但系统空间不足,调用数据管理线程尽快读出环形缓存区的数据,数据读出后,调用缓存管理线程调整环形缓冲区的大小,释放空间,移动环形缓存区数据指针,更新数据管理线程中的环形缓冲区的数据指针;
C.当前系统状态不足以负荷当前流媒体数据包大小,则首先控制数据管理线程读出数据,并控制数据管理线程停止数据获取,控制缓存管理线程释放缓存;
之后调度线程根据当前系统运行状况重新计算可支持数据包大小,并通过传感器管理线程传来的数据判断当前传感器是否支持该数据包大小;
如果支持,则重新调度缓存管理器分配数据指针,并更新数据管理线程中的环形缓冲区的数据指针,控制传感器管理线程按照新数据包大小进行管理,数据管理线程开始获取数据;
如果不支持,调度线程关闭所有线程,并向系统发送停止信息,系统结束;
所述的所有线程包括资源监控分析线程、缓存管理线程、数据管理线程和传感器管理线程。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于云南兆讯科技有限责任公司,未经云南兆讯科技有限责任公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201910517229.5/1.html,转载请声明来源钻瓜专利网。