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

分布式计算平台下基于QoS约束的视频流处理方法和系统

文献发布时间:2023-06-19 10:00:31


分布式计算平台下基于QoS约束的视频流处理方法和系统

技术领域

本发明属于分布式计算技术领域,更具体地,涉及一种分布式计算平台下基于QoS约束的视频流处理方法和系统。

背景技术

随着视频处理技术的不断提升,摄像头的部署数量也不断在增加,这也意味着越来越多的实时视频流需要得到及时的处理。视频流处理由于其数据量大、计算量也大,数据时效性强等特点,不但对软硬件平台要求高,应用开发也相对复杂,一直是一个门槛较高的研究领域。

现有的大数据处理平台(例如Spark、Flink、Storm等)都提供了数据流处理模型,并且提供自动的数据分割、任务调度、负载均衡、数据缓存、数据通信等功能,其大幅度降低了系统开发的复杂度,并能够适应大容量和高并发的高通量需求;此外,其还能够直接通过增加计算资源,在不修改软件的前提下提升视频的处理性能和计算规模。

然而,现有基于大数据处理平台的数据流处理模型仍然具有一些不可忽略的技术问题:第一、由于该数据流处理模型仅仅只能适用于处理固定的数据流处理任务,其先对任务进行划分,然后在各个处理器上对划分后的任务并行执行,却无法对任务参数进行修改,因此无法满足不同用户对任务的具体需求(例如不同任务对应的处理时延和准确度等);第二、由于该数据流处理模型是根据系统的运行效率或用户的设定进行系统资源的分配和调度,而不能根据任务的具体需求(例如不同任务对应的处理时延和准确度等)进行分配和调度,从而会造成系统资源分配和调度的效率偏低;第三、由于该数据流处理模型主要基于用户自身定义每次处理的数据流处理窗口(即每次处理的视频流数据量),在处理模型的处理量过大时,会导致用户不能及时得到响应。

发明内容

针对现有技术的以上缺陷或改进需求,本发明提供了一种分布式计算平台下基于QoS约束的视频流处理方法和系统,其目的在于,解决现有基于大数据处理平台的数据流处理模型由于无法对任务参数进行修改,因此无法满足不同用户对任务的具体需求的技术问题,以及由于不能根据任务的具体需求进行分配和调度,导致系统资源分配和调度的效率偏低的技术问题,以及由于该数据流处理模型主要基于用户自身定义每次处理的数据流处理窗口,导致处理模型的处理量过大时,用户不能及时得到响应的技术问题。

为实现上述目的,按照本发明的一个方面,提供了一种分布式计算平台下基于QoS约束的视频流处理方法,包括以下步骤:

(1)获取用户提交的视频流数据处理请求,该视频流数据处理请求包括视频流数据的来源信息、视频流数据的处理函数、视频流数据的分组函数和聚合函数、以及处理函数使用的视频流数据的初始值d,其中d为任意大于0的正整数;

(2)根据步骤(1)获取的视频流数据的函数中数据之间的依赖关系建立处理序列,并根据步骤(1)获取的视频流数据处理请求中视频流数据的函数的类型将该处理序列划分为多个处理阶段,所有的处理阶段构成处理阶段集合S={S

(3)针对步骤(2)得到的处理阶段集合S中仅包括处理函数的每一个处理阶段而言,利用模拟退火启发式搜索算法获得该处理阶段内每个处理函数小于其最大时延L、最小准确度A并且使用系统资源价值最低的处理函数配置信息,所有的处理函数配置信息构成处理函数配置信息集合

(4)针对步骤(2)得到的阶段集合中每个处理阶段中的每个处理函数而言,根据步骤(1)得到的处理函数的最大时延L以及步骤(3)得到的处理函数配置信息确定该处理函数的视频流窗口,将每个处理阶段的所有处理函数的视频流窗口中的最小视频流窗口作为该处理阶段对应的视频流窗口,所有处理阶段的视频流窗口构成集合NS={NS

(5)针对步骤(2)得到的处理阶段集合S中仅包括处理函数的每一个处理阶段而言,根据每个处理阶段内处理函数中数据之间的依赖关系建立该处理阶段对应的有向无环图,所有处理阶段对应的有向无环图构成有向无环图集合H;

(6)对于步骤(5)得到的处理阶段集合S对应的有向无环图集合中的每个有向无环图而言,使用广度优先遍历算法将该有向无环图划分为多个层次,所有层次构成该有向无环图对应的层次集合B={B

(7)根据步骤(6)得到的每个有向无环图对应的层次集合B确定与该有向无环图对应的处理阶段的资源分配总量集合和并行通量,并从处理阶段集合S的所有资源分配总量集合和所有并行通量中选择最大资源分配总量集合Umax和最大并行通量kmax;

(8)向集群管理结点申请启动kmax个任务的进程,将最大资源分配总量集合Umax分配给每个进程,并从集群管理结点获取每个进程的网络地址,所有进程的网络地址组成集合

(9)使用步骤(3)获取的处理函数配置信息集合Q中每个处理函数对应的可更改参数集合替换步骤(2)得到的处理阶段集合S中处理阶段内对应处理函数对应的可更改参数集合,并将处理阶段集合S中的每个处理阶段对应的的视频流窗口设置为步骤(4)获取的对应处理阶段对应的视频流窗口,并将处理阶段集合S中的每个处理阶段封装成单个任务,所有任务构成任务集合E={E

(10)针对步骤(9)得到的任务集合中的每一个任务而言,将该任务复制kmax份,并根据步骤(8)得到的网络地址集合中的网络地址将复制后的kmax份任务发送给所有进程,并接收每个进程在执行任务过程中每隔周期T返回的进程执行信息PE

(11)根据步骤(10)获得的进程执行信息集合PE将所需转移剩余处理时间长的进程待处理的视频流数据转移到所需剩余处理时间短的进程。

优选地,视频流数据的来源信息包括视频流数据的存储位置和存储速率r;

视频流数据的处理函数包括该视频流数据的并行通路数k、处理函数的最大时延L和最低准确度A、以及该处理函数对应的可更改参数集合V={G

优选地,可更改参数集合V中的第num个可更改参数G

G

其中num∈[1,h],vn

处理阶段集合S中第x1个处理阶段S

其中

优选地,步骤(3)具体包括如下子步骤:

(3-1)设置计数器i=1;

(3-2)判断i是否等于处理阶段集合S中处理阶段的总数m,如果是则过程结束,否则转入步骤(3-3);

(3-3)判断处理阶段集合S中处理阶段的第i阶段是否只包含处理函数,如果是转入步骤(3-4),否则转入步骤(3-12)

(3-4)设置计数器j=0;

(3-5)获取处理阶段集合S中第i个处理阶段S

(3-6)获取处理阶段集合S中第i个处理阶段S

(3-7)将可更改参数集合V

(3-8)获取处理函数P

(3-9)根据处理函数P

(3-10)将步骤(3-6)得到的新的可更改参数集合V′

(3-11)判断计数器j是否小于等于处理阶段集合S中第i个处理阶段S

(3-12)设置i=i+1,并返回步骤(3-2)。

优选地,服务器消耗的系统资源价值等于:

其中w

对于处理阶段集合S中第x1个处理阶段中的第x2个处理函数P

其中l

优选地,处理阶段集合S中第x3个处理阶段S

第x3个处理阶段S

最大资源分配总量集合为Umax=max(Us

优选地,第t3个进程的进程执行信息可以表示为三元组PE

优选地,步骤(11)包括如下子步骤:

(11-1)根据步骤(10)得到的所有进程执行信息对应进程所需剩余处理时间将步骤(10)得到的进程执行信息集合中的所有进程执行信息进行降序排序。

(11-2)设置计数器i=1,j=kmax,index=1;

(11-3)判断是否有i

(11-4)判断如果将步骤(8)得到的所有进程中进程node

(11-5)根据步骤(11-4)视频流数据转移前后的进程创建三元组

(11-6)设置i=i+1,j=j-1,并返回步骤(11-3);

(11-7)设置j=j–1,并返回步骤(11-3)。

优选地,进程所需剩余处理时间等于该进程待处理的视频流数据量乘以进程的实际处理速率,即TRemain

视频流数据的执行时间的减少量

其中

其中

按照本发明的另一方面,提供了一种分布式计算平台下基于QoS约束的视频流处理系统,包括:

第一模块,用于获取用户提交的视频流数据处理请求,该视频流数据处理请求包括视频流数据的来源信息、视频流数据的处理函数、视频流数据的分组函数和聚合函数、以及处理函数使用的视频流数据量的初始值d,其中d为任意大于0的正整数;

第二模块,用于根据第一模块获取的视频流数据的函数中数据之间的依赖关系建立处理序列,并根据第一模块获取的视频流数据处理请求中视频流数据的函数的类型将该处理序列划分为多个处理阶段,所有的处理阶段构成处理阶段集合S={S

第三模块,用于针对第二模块得到的处理阶段集合S中仅包括处理函数的每一个处理阶段而言,利用模拟退火启发式搜索算法获得该处理阶段内每个处理函数小于其最大时延L、最小准确度A并且使用系统资源价值最低的处理函数配置信息,所有的处理函数配置信息构成处理函数配置信息集合

第四模块,用于针对第二模块得到的阶段集合中每个处理阶段中的每个处理函数而言,根据第一模块得到的处理函数的最大时延L以及第三模块得到的处理函数配置信息确定该处理函数的视频流窗口,将每个处理阶段的所有处理函数的视频流窗口中的最小视频流窗口作为该处理阶段对应的视频流窗口,所有处理阶段的视频流窗口构成集合NS={NS

第五模块,用于针对第二模块得到的处理阶段集合S中仅包括处理函数的每一个处理阶段而言,根据每个处理阶段内处理函数中数据之间的依赖关系建立该处理阶段对应的有向无环图,所有处理阶段对应的有向无环图构成有向无环图集合H;

第六模块,用于对于第五模块得到的处理阶段集合S对应的有向无环图集合中的每个有向无环图而言,使用广度优先遍历算法将该有向无环图划分为多个层次,所有层次构成该有向无环图对应的层次集合B={B

第七模块,用于根据第六模块得到的每个有向无环图对应的层次集合B确定与该有向无环图对应的处理阶段的资源分配总量集合和并行通量,并从处理阶段集合S的所有资源分配总量集合和所有并行通量中选择最大资源分配总量集合Umax和最大并行通量kmax;

第八模块,用于向集群管理结点申请启动kmax个任务的进程,将最大资源分配总量集合Umax分配给每个进程,并从集群管理结点获取每个进程的网络地址,所有进程的网络地址组成集合

第九模块,用于使用第三模块获取的处理函数配置信息集合Q中每个处理函数对应的可更改参数集合替换第二模块得到的处理阶段集合S中处理阶段内对应处理函数对应的可更改参数集合,并将处理阶段集合S中的每个处理阶段对应的的视频流窗口设置为第四模块获取的对应处理阶段对应的视频流窗口,并将处理阶段集合S中的每个处理阶段封装成单个任务,所有任务构成任务集合E={E

第十模块,用于针对第九模块得到的任务集合中的每一个任务而言,将该任务复制kmax份,并根据第八模块得到的网络地址集合中的网络地址将复制后的kmax份任务发送给所有进程,并接收每个进程在执行任务过程中每隔周期T返回的进程执行信息PE

第十一模块,用于根据第十模块获得的进程执行信息集合PE将所需转移剩余处理时间长的进程待处理的视频流数据转移到所需剩余处理时间短的进程。

总体而言,通过本发明所构思的以上技术方案与现有技术相比,能够取得下列有益效果:

(1)由于本发明采用了步骤(1)到步骤(3),其对处理函数设置了可更改参数,同时可更改参数能够根据用户不同的时延以及准确度进行自适应改变,因此能够解决现有基于大数据处理平台的数据流处理模型由于无法对任务参数进行修改,因此无法满足不同用户对任务的具体需求的技术问题;

(2)由于本发明采用了步骤(3)到步骤(8)、以及步骤(9)到(11),其以利用最低资源价值为目标搜索处理函数的可更改参数,根据实际使用资源量集合确定应用所需资源充分保证应用拥有足够的资源量,同时步骤(9)到(11)根据进程执行信息调整视频流数据处理位置充分保证资源的有效利用,因此能够解决现有基于大数据处理平台的数据流处理模型由于不能根据任务的具体需求进行分配和调度,导致系统资源分配和调度的效率偏低的技术问题;

(3)由于本发明采用了步骤(3)以及步骤(7),其根据处理函数实际的执行速率确定用户指定的处理时延内能够处理的数据流窗口并且选择最小值作为数据量处理窗口保证所有处理函数都能及时得到处理结果,因此能够解决现有基于大数据处理平台的数据流处理模型由于该数据流处理模型主要基于用户自身定义每次处理的数据流处理窗口,导致处理模型的处理量过大时,用户不能及时得到响应的技术问题。

附图说明

图1是本发明分布式计算平台下基于QoS约束的视频流处理方法的流程图。

具体实施方式

为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。此外,下面所描述的本发明各个实施方式中所涉及到的技术特征只要彼此之间未构成冲突就可以相互组合。

分布式计算平台是指将数据存储、数据分析和计算等构建在由多个主机构成的集群上的软件平台。利用其提供的资源共享和协同计算的能力,可以很好地解决大规模数据的处理问题。目前主流的通用分布式计算平台有Spark、Flink、Storm等,都提供了视频流计算模型,并且提供自动的数据分割、任务调度、负载均衡、数据缓存、数据通信等功能,大幅度降低了系统开发的复杂度,并且能够适应大容量和高并发的高通量需求,它们将固定的任务分配到各个主机上执行,并且根据系统的效率或者用户静态分配来进行资源和任务调度。

本发明提供了一种分布式计算平台下基于QoS约束的视频流处理方法,该方法将在分布式计算平台下,以视频流处理结果的准确度和时延这两个QoS指标为目标进行资源分配和任务调度。视频流结果的准确度主要受到算法参数和算法实现方式影响,处理时延主要受到资源分配以及视频流处理窗口大小的制约。因此本发明提出一种搜索满足时延和准确度的算法、参数、资源分配量以及窗口大小,根据此调整任务的参数和实现方式、分配计算资源的方法。

整个分布式计算平台由分布式计算集群、数据存储介质以及用户提交平台三个部分组成。用户提交平台负责将用户的任务提交到分布式计算集群进行计算,分布式计算集群从数据存储介质中获取数据进行处理。分布式计算集群包括计算结点、集群管理结点以及应用处理结点,应用处理结点负责解析用户提交数据、分派应用任务到计算节点的以及跟踪应用执行过程;计算结点负责执行应用处理结点分派的任务并且向集群管理结点汇报资源情况;集群管理结点负责接收应用的资源请求,分配计算结点的资源给应用处理结点。

本发明是一种分布式计算平台下基于QoS约束的视频流处理方法,其首先针对视频流处理特性将QoS定义为算子的准确度以及时延,并且基于此重新定义了视频流数据处理的编程模型;再将该模型发布至分布式处理框架,平台根据用户提交的处理过程,首先对各个算子进行分析,预先确定需求的准确度以及时延需求的资源量。再根据应用的数据依赖关系,对多个算子组合的情况(串行、并行、串行转并行、并行转串行)估计整个应用处理过程中应该分配的资源判断是否能满足要求并且根据之前的对算子的分析能够得到处理时间的估计时延。然后根据时延情况以及数据流的输入得到数据处理的窗口大小,再根据用户预估的视频流通路数对资源的总量进行估计,将任务分派给平台中满足资源需求条件的多台机器进行处理。在运行过程中接收任务处理的速率以及数据接收的速率要求是重新调整计算窗口大小,同时将某些处理计算量较大的通路将部分任务分派给某些视频通路数据量较少以及资源闲置较大的执行器,同时对资源重新调整。

如图1所示,本发明提供了一种分布式计算平台下基于QoS约束的视频流处理方法,包括以下步骤:

(1)获取用户提交的视频流数据处理请求,该视频流数据处理请求包括视频流数据的来源信息、视频流数据的处理函数(表示为P)、视频流数据的分组函数(表示为R)和聚合函数(表示为C)、以及处理函数使用的视频流数据量的初始值d(即视频流数据能够被拆分的帧的数量),其中d为任意大于0的正整数。

具体而言,视频流数据的来源信息包括视频流数据的存储位置和存储速率r。

视频流数据的处理函数包括该视频流数据的并行通路数(即采集该视频流数据的摄像头个数)k、处理函数的最大时延L和最低准确度A、以及该处理函数对应的可更改参数(即对视频流数据处理结果的准确度或者时延产生影响的参数)集合V={G

对于处理函数对应的可更改参数集合V中的第num个可更改参数G

G

(2)根据步骤(1)获取的视频流数据的函数中数据之间的依赖关系建立处理序列(该处理序列中的元素就是视频流数据的所有函数),并根据步骤(1)获取的视频流数据处理请求中视频流数据的函数的类型将该处理序列划分为多个处理阶段,所有的处理阶段构成处理阶段集合S={S

需要注意的是,在处理阶段的划分过程中,如果处理序列中存在多个连续的处理函数,则将其一起作为一个处理阶段;如果处理序列中存在多个连续的分组函数,则将每一个分组函数单独作为一个处理阶段;如果处理序列中存在多个连续的聚合函数,则将每一个聚合函数单独作为一个处理阶段。

具体而言,函数中数据之间的依赖关系,指的就是下一个函数的输入数据依赖上一个函数的输出数据。

假如,视频流数据的函数中数据之间的依赖关系是处理函数P

上述步骤(2)的优点在于,处理序列中分组和聚合函数需要将一组连续的视频流数据分散到多个处理结点中才能进行后续处理,根据其位置划分为不同的阶段,能最大提高阶段内任务处理的并行度,并且减少整个应用处理的复杂度。

(3)针对步骤(2)得到的处理阶段集合S中仅包括处理函数的每一个处理阶段而言,利用模拟退火启发式搜索算法获得该处理阶段内每个处理函数小于其最大时延L、最小准确度A并且使用系统资源价值最低的处理函数配置信息,所有的处理函数配置信息构成处理函数配置信息集合

具体而言,处理阶段集合S中第x1个处理阶段S

本步骤具体包括如下子步骤:

(3-1)设置计数器i=1;

(3-2)判断i是否等于处理阶段集合S中处理阶段的总数m,如果是则过程结束,否则转入步骤(3-3);

(3-3)判断处理阶段集合S中处理阶段的第i阶段是否只包含处理函数,如果是转入步骤(3-4),否则转入步骤(3-12)

(3-4)设置计数器j=0;

(3-5)获取处理阶段集合S中第i个处理阶段S

(3-6)获取处理阶段集合S中第i个处理阶段S

(3-7)将可更改参数集合V

具体而言,处理函数P

(3-8)获取处理函数P

具体而言,服务器的系统资源包括CPU、内存等,系统资源使用量集合表示为U′

服务器消耗的系统资源价值等于:

其中w

(3-9)根据处理函数P

具体而言,(a

(3-10)将步骤(3-6)得到的新的可更改参数集合V′

(3-11)判断计数器j是否小于等于处理阶段集合S中第i个处理阶段S

(3-12)设置i=i+1,并返回步骤(3-2)。

(4)针对步骤(2)得到的阶段集合中每个处理阶段中的每个处理函数而言,根据步骤(1)得到的处理函数的最大时延L以及步骤(3)得到的处理函数配置信息确定该处理函数的视频流窗口,将每个处理阶段的所有处理函数的视频流窗口中的最小视频流窗口作为该处理阶段对应的视频流窗口,所有处理阶段的视频流窗口构成集合NS={NS

具体而言,对于处理阶段集合S中第x1个处理阶段中的第x2个处理函数P

(5)针对步骤(2)得到的处理阶段集合S中仅包括处理函数的每一个处理阶段而言,根据每个处理阶段内处理函数中数据之间的依赖关系建立该处理阶段对应的有向无环图,所有处理阶段对应的有向无环图构成有向无环图集合H;

(6)对于步骤(5)得到的处理阶段集合S对应的有向无环图集合中的每个有向无环图而言,使用广度优先遍历算法将该有向无环图划分为多个层次,所有层次构成该有向无环图对应的层次集合B={B

(7)根据步骤(6)得到的每个有向无环图对应的层次集合B确定与该有向无环图对应的处理阶段的资源分配总量集合和并行通量,并从处理阶段集合S的所有资源分配总量集合和所有并行通量中选择最大资源分配总量集合Umax和最大并行通量kmax;

具体而言,处理阶段集合S中第x3个处理阶段S

在本步骤中,最终得到的最大资源分配总量集合为Umax=max(Us

(8)向集群管理结点申请启动kmax个任务的进程,将最大资源分配总量集合Umax分配给每个进程,并从集群管理结点获取每个进程的网络地址(包括IP地址和端口号),所有进程的网络地址组成集合

(9)使用步骤(3)获取的处理函数配置信息集合Q中每个处理函数对应的可更改参数集合替换步骤(2)得到的处理阶段集合S中处理阶段内对应处理函数对应的可更改参数集合,并将处理阶段集合S中的每个处理阶段对应的的视频流窗口设置为步骤(4)获取的对应处理阶段对应的视频流窗口,并将处理阶段集合S中的每个处理阶段封装成单个任务,所有任务构成任务集合E={E

(10)针对步骤(9)得到的任务集合中的每一个任务而言,将该任务复制kmax份,并根据步骤(8)得到的网络地址集合中的网络地址将复制后的kmax份任务发送给所有进程,并接收每个进程在执行任务过程中每隔周期T返回的进程执行信息PE

具体而言,第t3个进程的进程执行信息可以表示为三元组PE

(11)根据步骤(10)获得的进程执行信息集合PE将所需转移剩余处理时间长的进程待处理的视频流数据转移到所需剩余处理时间短的进程。

本步骤包括如下子步骤:

(11-1)根据步骤(10)得到的所有进程执行信息对应进程所需剩余处理时间将步骤(10)得到的进程执行信息集合中的所有进程执行信息进行降序排序。

具体而言,进程所需剩余处理时间等于该进程待处理的视频流数据量乘以进程的实际处理速率,即TRemain

(11-2)设置计数器i=1,j=kmax,index=1;

(11-3)判断是否有i

(11-4)判断如果将步骤(8)得到的所有进程中进程node

具体而言,DT为任意大于零的自然数,优选为TRemain

转移视频流数据量为

其中

视频流数据的执行时间的减少量

(11-5)根据步骤(11-4)视频流数据转移前后的进程创建三元组

(11-6)设置i=i+1,j=j-1,并返回步骤(11-3);

(11-7)设置j=j–1,并返回步骤(11-3)。

本领域的技术人员容易理解,以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。

相关技术
  • 分布式计算平台下基于QoS约束的视频流处理方法和系统
  • 分布式计算平台下基于QoS约束的视频流处理方法和系统
技术分类

06120112383405