一种基于嵌入式设备的多线程流媒体缓存控制系统的制作方法

文档序号:18825017发布日期:2019-10-09 01:25阅读:164来源:国知局
一种基于嵌入式设备的多线程流媒体缓存控制系统的制作方法

本发明属于多线程技术领域和流媒体技术领域,具体涉及一种基于嵌入式设备的多线程流媒体缓存控制系统。



背景技术:

随着电子信息技术和流媒体技术的发展,网络带宽不再是数据传输的瓶颈,各种嵌入式设备荷载流媒体数据已经变成了一种常态,这个荷载的过程可以分解为前端传感器采集、嵌入式硬件编码、嵌入式软件缓冲、网络协议传输。

在现实生活中,由于流媒体数据具有连续性,实时性和时序性,因而设备在荷载流媒体的过程中,会占用大量的系统资源,而嵌入式设备受限于体积以及硬件性能瓶颈,对流媒体数据的支持有所不足,这就使得嵌入式设备传输的流媒体数据容易出现数据抖动,造成流媒体卡顿。

目前,为了降低这种数据抖动,采取的改进措施有以下几种:开辟大空间的内存区域用以进行数据缓存,保证数据的连续性;开辟环形缓冲空间,循环迭代保证数据的时序性;降低流媒体采集的速率,以减少数据量。

但上述改进方法尚存在一些不足:开辟大空间的内存虽然一定程度上可以降低视频的抖动,但是嵌入式设备受限于体积,一方面没有太多的系统资源可以分配,另一方面,太大的缓冲容易引入延时,造成流媒体数据的滞后;开辟环形缓冲空间,可以解决一部分抖动的问题,但是一旦数据出现阻塞,会导致一部分流媒体数据丢失,造成流媒体播放不连续;降低流媒体采集速率,可以在一定程度上解决缓冲问题,但是一方面,低速率的流媒体数据影响用户体验,另一方面,并没有从根本上解决上述问题。因此如何克服现有技术的不足是目前流媒体技术领域技术领域亟需解决的问题。



技术实现要素:

本发明的目的是为了解决现有技术的不足,提供一种基于嵌入式设备的多线程流媒体缓存控制系统,通过对嵌入式设备资源的实时分析,进行多线程协调,动态分配流媒体缓冲空间,实时调控流媒体数据质量,实现了流媒体数据在嵌入式设备中的有效防抖,同时兼顾了低延时,高保真。

为实现上述目的,本发明采用的技术方案如下:

一种基于嵌入式设备的多线程流媒体缓存控制系统,包括调度线程、资源监控分析线程、缓存管理线程、数据管理线程和传感器管理线程;

调度线程分别与资源监控分析线程、缓存管理线程、数据管理线程和传感器管理线程相连;

数据管理线程还与缓存管理线程相连;其中,数据管理线程负责缓存管理线程中的数据的写入和读出;

调度线程用于资源监控分析线程、缓存管理线程、数据管理线程、传感器管理线程的创建、调度和销毁;

资源监控分析线程用于实时采集系统的运行状况,并对运行状况进行状态分析,并把结果反馈给调度线程;

缓存管理线程用于管理环形缓冲区,并根据调度线程的指令进行环形缓冲区的创建及环形缓冲区大小的调整,并将环形缓冲区的信息反馈至调度线程;

传感器管理线程用于对流媒体传感器进行管理,同时获取流媒体传感器的信息,并反馈至调度线程;

数据管理线程用于管理流媒体数据,所述的流媒体数据为调度线程从传感器管理线程中获取到的数据;数据管理线程从调度线程获取到数据以后,把该数据放入环形缓冲区,并供数据消费者取走数据;数据消费者取走数据时,数据管理线程需先将数据从缓存管理线程中读出。

进一步,优选的是,所述的运行状况包括:cpu使用情况、内存使用情况、硬盘使用情况、网络传输状况和电源系统状态。

进一步,优选的是,对流媒体传感器进行管理具体包括传感器的编码速率调整、传感器数据的读取和封装。

进一步,优选的是,调度线程根据资源监控分析线程和传感器管理线程传来的数据创建缓存管理线程;调度线程根据缓存管理线程传来的数据创建数据管理线程。

本发明同时提供一种基于嵌入式设备的多线程流媒体缓存控制系统初始化方法,采用上述基于嵌入式设备的多线程流媒体缓存控制系统,包括如下步骤:

(1)系统上电开始工作,此时进入调度线程进行处理,调度线程创建资源监控分析线程和传感器管理线程;

(2)资源监控分析线程开始工作后,首先采集系统信息,获取系统的运行状况,并对运行状况进行状态分析,并把结果反馈给调度线程;

(3)传感器管理线程开始工作,获取流媒体传感器的型号、流媒体数据的格式及数据包大小,并把这些信息反馈至调度线程;

(4)调度线程接收到资源监控分析线程的数据和传感器管理线程的数据以后,计算出单包数据大小以及可支持最大数据包大小,并以此为依据创建缓存管理线程;

(5)缓存管理线程开始工作,根据调度线程传入的数据,创建环形缓冲区,并用数据指针标记环形缓冲区的起始位置和结束位置,并将环形缓冲区的信息反馈至调度线程;

(6)调度线程接收到缓存管理线程的数据后,开始创建数据管理线程,并把缓存管理线程的指针和传感器管理线程的数据传入数据管理线程;

(7)数据管理线程开始工作,一方面,通过调度线程不停的从传感器管理线程中获取数据,另一方面,开启服务等待消费者来取走数据;

至此,控制系统的初始化完成。

本发明还提供一种基于嵌入式设备的多线程流媒体缓存控制系统的控制方法,采用上述基于嵌入式设备的多线程流媒体缓存控制系统,包括如下步骤:

1)全部线程正常运行,调度线程阻塞等待资源监控线程、传感器管理线程、缓存管理线程、数据管理线程消息传入;

2)当系统资源发生变化,资源监控分析线程重新采集系统运行状况并传入调度线程,此时调度线程跳出阻塞,开始运行;

3)调度线程根据资源监控分析线程传入的数据,调用传感器管理线程获取流媒体数据,然后进行分析,对分析的结果有以下处理:

a.当前系统状态仍然可以负荷当前流媒体数据包大小,且系统空间充足,调度传感器管理线程判断是否需要调整更大的数据包,如果需要,则调度缓存管理线程进行内存扩充,如果不需要,则忽略本次变化;

b.当前系统状态仍然可以负荷当前流媒体数据包大小,但系统空间不足,调用数据管理线程尽快读出环形缓存区的数据,数据读出后,调用缓存管理线程调整环形缓冲区的大小,释放空间,移动环形缓存区数据指针,更新数据管理线程中的环形缓冲区的数据指针;

c.当前系统状态不足以负荷当前流媒体数据包大小,则首先控制数据管理线程读出数据,并控制数据管理线程停止数据获取,控制缓存管理线程释放缓存;

之后调度线程根据当前系统运行状况重新计算可支持数据包大小,并通过传感器管理线程传来的数据判断当前传感器是否支持该数据包大小;

如果支持,则重新调度缓存管理器分配数据指针,并更新数据管理线程中的环形缓冲区的数据指针,控制传感器管理线程按照新数据包大小进行管理,数据管理线程开始获取数据;

如果不支持,调度线程关闭所有线程,并向系统发送停止信息,系统结束;

所述的所有线程包括资源监控分析线程、缓存管理线程、数据管理线程和传感器管理线程。

本发明中所述的状态分析包括中央处理器运行状态分析,内存使用情况分析,网络状况分析,但不限于此。

本发明中数据消费者取走数据采用的用户程序可以为流媒体服务器,视频播放器,图像处理程序。但不限于此。

本发明所述的流媒体传感器为各类摄像头。

本发明通过创建多线程系统,对嵌入式设备的系统资源进行实时分析,根据分析结果,一方面动态调整流媒体缓冲空间,实现系统资源的最大化利用,另一方面,实时调控流媒体数据质量,以适应当前系统的数据负荷,避免造成系统数据拥塞而导致数据丢失。

本发明与现有技术相比,其有益效果为:

本发明提出了一种基于嵌入式设备的多线程流媒体缓存控制系统,通过对嵌入式设备资源的实时分析,进行多线程协调,动态分配流媒体缓冲空间,实时调控流媒体数据质量,实现了流媒体数据在嵌入式设备中的有效防抖,解决了现有技术中,流媒体数据容易丢包、卡顿、延时长、卡顿的问题,本发明同时兼顾了低延时和高保真,在有限的系统资源中,实现了网络带宽和嵌入式设备资源的最大化利用,相比于传统的技术,可以在不降低图像质量的情况下,大幅度降低延时,易于推广应用。

附图说明

图1为本发明系统的结构示意图;

其中,1、调度线程;2、资源监控分析线程;3、缓存管理线程;4、数据管理线程;5、传感器管理线程;箭头方向为数据或信号走向;

图2为本发明系统的初始化流程图。

具体实施方式

下面结合实施例对本发明作进一步的详细描述。

本领域技术人员将会理解,下列实施例仅用于说明本发明,而不应视为限定本发明的范围。实施例中未注明具体技术或条件者,按照本领域内的文献所描述的技术或条件或者按照产品说明书进行。所用材料或设备未注明生产厂商者,均为可以通过购买获得的常规产品。

本技术领域技术人员可以理解,除非特意声明,这里使用的单数形式“一”、“一个”、“所述”和“该”也可包括复数形式。应该进一步理解的是,本发明的说明书中使用的措辞“包括”是指存在所述特征、整数、步骤、操作、元件和/或组件,但是并不排除存在或添加一个或多个其他特征、整数、步骤、操作、元件、组件和/或它们的组。应该理解,当我们称元件被“连接”或“耦接”到另一元件时,它可以直接连接或耦接到其他元件,或者也可以存在中间元件。此外,这里使用的“连接”或“耦接”可以包括无线连接或耦接。这里使用的措辞“和/或”包括一个或更多个相关联的列出项的任一单元和全部组合。

在本发明的描述中,除非另有说明,“多个”的含义是两个或两个以上。术语“内”、“上”、“下”等指示的方位或状态关系为基于附图所示的方位或状态关系,仅是为了便于描述本发明和简化描述,而不是指示或暗示所指的装置或元件必须具有特定的方位、以特定的方位构造和操作,因此不能理解为对本发明的限制。

在本发明的描述中,需要说明的是,除非另有明确的规定和限定,术语“安装”、“连接”、“设有”应做广义理解,例如,可以是固定连接,也可以是可拆卸连接,或一体地连接;可以是机械连接,也可以是电连接;可以是直接相连,也可以通过中间媒介间接相连。对于本领域的普通技术人员而言,根据具体情况理解上述术语在本发明中的具体含义。

本技术领域技术人员可以理解,除非另外定义,这里使用的所有术语(包括技术术语和科学术语)具有与本发明所属领域中的普通技术人员的一般理解相同的意义。还应该理解的是,诸如通用字典中定义的那些术语应该被理解为具有与现有技术的上下文中的意义一致的意义,并且除非像这里一样定义,不会用理想化或过于正式的含义来解释。

如图1所示,一种基于嵌入式设备的多线程流媒体缓存控制系统,包括调度线程1、资源监控分析线程2、缓存管理线程3、数据管理线程4和传感器管理线程5;

调度线程1分别与资源监控分析线程2、缓存管理线程3、数据管理线程4和传感器管理线程5相连;

数据管理线程4还与缓存管理线程3相连;其中,数据管理线程4负责缓存管理线程3中的数据的写入和读出;

调度线程1用于资源监控分析线程2、缓存管理线程3、数据管理线程4、传感器管理线程5的创建、调度和销毁;

资源监控分析线程2用于实时采集系统的运行状况,并对运行状况进行状态分析,并把结果反馈给调度线程1;

缓存管理线程3用于管理环形缓冲区,并根据调度线程1的指令进行环形缓冲区的创建及环形缓冲区大小的调整,并将环形缓冲区的信息反馈至调度线程1;

传感器管理线程5用于对流媒体传感器进行管理,同时获取流媒体传感器的信息,并反馈至调度线程1;

数据管理线程4用于管理流媒体数据,所述的流媒体数据为调度线程1从传感器管理线程5中获取到的数据;数据管理线程4从调度线程1获取到数据以后,把该数据放入环形缓冲区,并供数据消费者取走数据;数据消费者取走数据时,数据管理线程4需先将数据从缓存管理线程3中读出。

所述的运行状况包括:cpu使用情况、内存使用情况、硬盘使用情况、网络传输状况和电源系统状态。

对流媒体传感器进行管理具体包括传感器的编码速率调整、传感器数据的读取和封装。

调度线程1根据资源监控分析线程2和传感器管理线程5传来的数据创建缓存管理线程3;调度线程1根据缓存管理线程3传来的数据创建数据管理线程4。

如图2所示,一种基于嵌入式设备的多线程流媒体缓存控制系统初始化方法,采用上述基于嵌入式设备的多线程流媒体缓存控制系统,包括如下步骤:

(1)系统上电开始工作,此时进入调度线程进行处理,调度线程创建资源监控分析线程和传感器管理线程;

(2)资源监控分析线程开始工作后,首先采集系统信息,获取系统的运行状况,并对运行状况进行状态分析,并把结果反馈给调度线程;

(3)传感器管理线程开始工作,获取流媒体传感器的型号、流媒体数据的格式及数据包大小,并把这些信息反馈至调度线程;

(4)调度线程接收到资源监控分析线程的数据和传感器管理线程的数据以后,计算出单包数据大小以及可支持最大数据包大小,并以此为依据创建缓存管理线程;

(5)缓存管理线程开始工作,根据调度线程传入的数据,创建环形缓冲区,并用数据指针标记环形缓冲区的起始位置和结束位置,并将环形缓冲区的信息反馈至调度线程;

(6)调度线程接收到缓存管理线程的数据后,开始创建数据管理线程,并把缓存管理线程的指针和传感器管理线程的数据传入数据管理线程;

(7)数据管理线程开始工作,一方面,通过调度线程不停的从传感器管理线程中获取数据,另一方面,开启服务等待消费者来取走数据;

至此,控制系统的初始化完成。

一种基于嵌入式设备的多线程流媒体缓存控制系统的控制方法,采用上述基于嵌入式设备的多线程流媒体缓存控制系统,包括如下步骤:

1)全部线程正常运行,调度线程阻塞等待资源监控线程、传感器管理线程、缓存管理线程、数据管理线程消息传入;

2)当系统资源发生变化,资源监控分析线程重新采集系统运行状况并传入调度线程,此时调度线程跳出阻塞,开始运行;

3)调度线程根据资源监控分析线程传入的数据,调用传感器管理线程获取流媒体数据,然后进行分析,对分析的结果有以下处理:

a.当前系统状态仍然可以负荷当前流媒体数据包大小,且系统空间充足,调度传感器管理线程判断是否需要调整更大的数据包,如果需要,则调度缓存管理线程进行内存扩充,如果不需要,则忽略本次变化;

b.当前系统状态仍然可以负荷当前流媒体数据包大小,但系统空间不足,调用数据管理线程尽快读出环形缓存区的数据,数据读出后,调用缓存管理线程调整环形缓冲区的大小,释放空间,移动环形缓存区数据指针,更新数据管理线程中的环形缓冲区的数据指针;

c.当前系统状态不足以负荷当前流媒体数据包大小,则首先控制数据管理线程读出数据,并控制数据管理线程停止数据获取,控制缓存管理线程释放缓存;

之后调度线程根据当前系统运行状况重新计算可支持数据包大小,并通过传感器管理线程传来的数据判断当前传感器是否支持该数据包大小;

如果支持,则重新调度缓存管理器分配数据指针,并更新数据管理线程中的环形缓冲区的数据指针,控制传感器管理线程按照新数据包大小进行管理,数据管理线程开始获取数据;

如果不支持,调度线程关闭所有线程,并向系统发送停止信息,系统结束;

所述的所有线程包括资源监控分析线程、缓存管理线程、数据管理线程和传感器管理线程。

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

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1