数据流处理方法和系统的制作方法

文档序号:7855890阅读:140来源:国知局
专利名称:数据流处理方法和系统的制作方法
技术领域
本发明涉及数据处理领域,具体地,涉及一种数据流处理方法和系统。
背景技术
随着互联网的飞速发展,基于网络的音视频传输流量也越来越大,网络音视频流已深入到了人们的日常生活,给我们的生活带来了很多方便和变化,而不断出现庞大的、不同内容的图像信息库,也似乎给我们带来了不少的困扰,网上大量不良图像对广大青年人的有很多毒害;为了净化网络,维护社会和谐安定,迫切需要对网络上的音视频内容进行监管。而音视频内容监管需要高性能的解码系统,才能够满足互联网海量音视频数据的并行解码需求。然而,大量的视频解码任务片段是属于同一个流,流路数多,不同流任务片段数目差异大,需要兼顾负载均衡和流的响应延迟。针对相关技术中由于统一对所有数据流进行处理导致处理效率低、处理资源利用不合理的问题,目前尚未提出有效的解决方案。

发明内容
针对相关技术中由于统一对所有数据流进行处理导致处理效率低、处理资源利用不合理的问题,本发明提出一种数据流处理方法和系统,能够通过对多个处理核心划分得到的多个资源组对数据流进行并行处理,提高处理的效率,优化利用处理资源。本发明的技术方案是这样实现的根据本发明的一个方面,提供了一种数据流处理方法,该处理方法用于借助众核处理器的多个处理器核心对数据流进行解码处理,其中,多个处理器核心被划分为多个资源组,该处理方法包括将数据流分配给多个资源组中的部分或全部;以及每个资源组对被分配到该资源组的数据流进行解码处理。其中,将数据流分配给多个资源组中的部分或全部包括根据多个资源组的负荷,将数据流分配给多个资源组中的部分或全部。此外,将数据流分配给多个资源组中的部分或全部进一步包括对每个资源组分配一个数据流,如果仍存在未分配的数据流,则根据多个资源组的负荷将未分配的数据流分配给多个资源组,直至不存在未分配的数据流。并且,在分配了所有数据流之后,进一步通过以下方式中的至少之一对已经分配的数据流的分配情况进行调整根据数据流的片段数量对数据流的分配情况进行调整;根据数据流的格式对数据流的分配情况进行调整;以及根据数据流的属性对数据流的分配情况进行调整。该处理方法进一步包括在将数据流分配给多个资源组中的部分或全部之后,对于每个资源组,根据对该资源组分配的数据流创建描述节点链表,链表中包括描述节点以及数据流,每个描述节点对应于该资源组分配的一数据流,每个数据流包括一个或者多个数据片段。而且,每个资源组对被分配到该资源组的数据流进行解码处理包括每个资源组在各自对应的描述节点链表中提取数据流的片段,并根据系统配置参数对提取的该流的一个或者多个片段进行解码;如果解码后,本资源组的任务池为空,则继续解码该数据流后续片段;如果资源组的任务池不为空,则归还当前任务描述节点,重新获取新任务节点,重复解码工作。根据本发明的另一个方面,提供了一种数据流处理系统,该处理系统包括多个处理器核心,该多个处理器核心对数据流进行解码处理,其中,多个处理器核心被划分为多个资源组,该处理系统包括分配模块,用于将数据流分配给多个资源组中的部分或全部;以及 多个资源组,每个资源组对被分配到该资源组的数据流进行解码处理。其中,分配模块用于根据多个资源组的负荷,将数据流分配给多个资源组中的部分或全部。此外,分配模块进一步用于对每个资源组分配一个数据流,如果仍存在未分配的数据流,分配模块则根据多个资源组的负荷将未分配的数据流分配给多个资源组,直至不存在未分配的数据流。并且,分配模块在分配了所有数据流之后,进一步用于通过以下方式中的至少之一对已经分配的数据流的分配情况进行调整根据数据流的片段数量对数据流的分配情况进行调整;根据数据流的格式对数据流的分配情况进行调整;以及根据数据流的属性对数据流的分配情况进行调整。本发明通过将数据流分配给多个处理核心划分得到的多个资源组中的部分或全部,并在每个资源组中对被分配到该资源组的数据流进行解码处理,从而能够对多个数据流进行并行处理,并且减少各个流的各个片段输入产生的响应延迟以及整个流的响应延迟,提高了处理效率,优化了处理器资源的使用。


为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。图I是根据本发明实施例的数据流处理方法的流程图;图2是根据本发明实施例的数据流处理方法的示意图;图3是根据本发明实施例的数据流处理系统的框图。
具体实施例方式下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员所获得的所有其他实施例,都属于本发明保护的范围。根据本发明的实施例,提供了一种数据流处理方法。该处理方法用于借助众核处理器的多个处理器核心对数据流进行解码处理,其中,多个处理器核心被划分为多个资源组。如图I所示,根据本发明实施例的数据流处理方法包括步骤S101,将数据流分配给多个资源组中的部分或全部;步骤S103,每个资源组对被分配到该资源组的数据流(其中,数据流可以包括视频数据流和/或音频数据流)进行解码处理。对于众核资源分组架构,是指把众核多个核心(计算资源)分为一组,形成以组为 单位的多个资源组。例如,以Tilera众核CPU为例,其可以在单芯片上提供64个处理器核心,每个核心可以独立运行,可通过共享内存和消息传递机制来进行通信,为大规模多路音视频流的并行计算提供计算平台。类似地,其他多核处理器同样能够采用本发明的技术方案。在该方法中,先对所有的数据流进行全局任务调度处理。具体地,在步骤SlOl中,将数据流分配给多个资源组中的部分或全部包括根据多个资源组的负荷,将数据流分配给多个资源组中的部分或全部。并且,将数据流分配给多个资源组中的部分或全部进一步包括对每个资源组分配一个数据流,如果仍存在未分配的数据流,则根据多个资源组的负荷将未分配的数据流分配给多个资源组,直至不存在未分配的数据流。根据待解码数据压缩格式类型,选择负载最轻的资源组进行分配,其中,负载轻重计算可以包括按照当前资源组待解码数据格式权重、已解码片断负载修正值、片断数量等计算每个资源组所对应的总负载。并且,在分配了所有数据流之后,进一步通过以下方式中的至少之一对已经分配的数据流的分配情况进行调整(即,对已经分配的数据流进行再次分配)根据数据流的片段数量对数据流的分配情况进行调整;根据数据流的格式对数据流的分配情况进行调整;以及根据数据流的属性对数据流的分配情况进行调整。该处理方法进一步包括在将数据流分配给多个资源组中的部分或全部之后,对于每个资源组,根据对该资源组分配的数据流创建描述节点链表,链表中包括描述节点以及数据流,每个描述节点对应于该资源组分配的一数据流,每个数据流包括一个或者多个数据片段。创建对该流的描述节点,包括流号、当前未解码片断数,正在处理的片断号等。并且,直接根据任务描述信息中的组号,在对应组的流描述节点链表中进行哈希(hash)计算查找流描述节点位置,更新描述信息。在该方法中,还需对所有的数据流进行组内任务调度处理。每个资源组对被分配到该资源组的数据流进行解码处理包括每个资源组在各自对应的描述节点链表中提取数据流的片段,并根据系统配置参数对提取的该流的一个或者多个片段进行解码;如果解码后,本资源组的任务池为空,则继续解码该数据流后续片段;如果资源组的任务池不为空,则归还当前任务描述节点,重新获取新任务节点,重复解码工作。例如,在核心空闲时,到本组任务资源链表中获取一个任务流描述节点,解码节点任务链表第一个数据片断或根据配置文件配置连续解码几个片断;若任务链表为空,继续解码后续片断;否则,归还该流到本组任务流链表,若该流任务片断链表为空,释放流描述节点;查找下一个任务。如图2所示,C表示处理器核心,F为片段,每个流有多个解码片段,片段号从0开始依次递增,S是流,每个流有唯一标识号。其中,处理器核心可以被划分为多个组,例如,IO资源组、预处理资源组以及解码资源组等,在IO资源组中,数据流被接收到,在预处理组,数据流被分配到多个处理资源组并且,数据流的格式、编码率、分辨率等信息会被确定,在解码组会进行数据流的解码,并且会在解码组内进行组内任务调度处理。根据本发明的实施例,还提供了一种数据流处理系统,该处理系统包括多个处理器核心,该多个处理器核心对数据流进行解码处理,其中,多个处理器核心被划分为多个资 源组。如图3所述,根据本发明实施例的数据流处理系统包括分配模块31,用于将数据流分配给多个资源组中的部分或全部;多个资源组32,每个资源组对被分配到该资源组的数据流进行解码处理。该多个资源组32包括不同的功能资源组,如IO资源组、预处理资源组以及解码资源组等。IO资源组接收到未知类型的新数据流(待解码数据流的压缩格式未知),把数据流交给预处理资源组进行格式识别等处理(如按数据流的格式和属性分类),当接收到已知类型数据时,表明对该流已进行过处理,因此,把数据流交给解码资源组进行解码处理。其中,分配模块31用于根据多个资源组32的负荷,将数据流分配给多个资源组32中的部分或全部。此外,分配模块31进一步用于对每个资源组分配一个数据流,如果仍存在未分配的数据流,分配模块31则根据多个资源组32的负荷将未分配的数据流分配给多个资源组32,直至不存在未分配的数据流。并且,分配模块31在分配了所有数据流之后,进一步用于通过以下方式中的至少之一对已经分配的数据流的分配情况进行调整根据数据流的片段数量对数据流的分配情况进行调整;根据数据流的格式对数据流的分配情况进行调整;以及根据数据流的属性对数据流的分配情况进行调整。综上所述,借助于本发明的上述技术方案,通过数据流分配给多个资源组中的部分或全部;以及在每个资源组中对被分配到该资源组的数据流进行解码处理,使得各个流的各个片段输入得到的响应延迟和整个流的响应延迟时间达到均衡。上述技术方案利用了众核的众多核心,考虑互联网视频流的特性,通过分组策略进行数据并行和功能并行,并对待处理数据基于流进行调度管理,可以满足对每个流内容解码检测的性能需求。以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
权利要求
1.一种数据流处理方法,其特征在于,所述方法用于借助众核处理器的多个处理器核心对数据流进行解码处理,其中,所述多个处理器核心被划分为多个资源组,所述方法包括 将数据流分配给所述多个资源组中的部分或全部;以及 每个资源组对被分配到该资源组的数据流进行解码处理。
2.根据权利要求I所述的数据流处理方法,其特征在于,将数据流分配给所述多个资源组中的部分或全部包括 根据所述多个资源组的负荷,将数据流分配给所述多个资源组中的部分或全部。
3.根据权利要求2所述的数据流处理方法,其特征在于,将数据流分配给所述多个资源组中的部分或全部进一步包括 对每个资源组分配一个数据流,如果仍存在未分配的数据流,则根据所述多个资源组的负荷将未分配的数据流分配给所述多个资源组,直至不存在未分配的数据流。
4.根据权利要求3所述的数据流处理方法,其特征在于,在分配了所有数据流之后,进一步通过以下方式中的至少之一对已经分配的数据流的分配情况进行调整 根据数据流的片段数量对数据流的分配情况进行调整; 根据数据流的格式对数据流的分配情况进行调整;以及 根据数据流的属性对数据流的分配情况进行调整。
5.根据权利要求I所述的数据流处理方法,其特征在于,进一步包括 在将数据流分配给所述多个资源组中的部分或全部之后,对于每个资源组,根据对该资源组分配的数据流创建描述节点链表,所述链表中包括描述节点以及数据流,每个描述节点对应于该资源组分配的一数据流,每个数据流包括一个或者多个数据片段。
6.根据权利要求5所述的数据流处理方法,每个资源组对被分配到该资源组的数据流进行解码处理包括 每个资源组在各自对应的所述描述节点链表中提取数据流的片段,并根据系统配置参数对提取的该流的一个或者多个片段进行解码;如果解码后,本资源组的任务池为空,则继续解码该数据流后续片段;如果资源组的任务池不为空,则归还当前任务描述节点,重新获取新任务节点,重复解码工作。
7.一种数据流处理系统,其特征在于,包括多个处理器核心,所述多个处理器核心对数据流进行解码处理,其中,所述多个处理器核心被划分为多个资源组,所述系统包括 分配模块,用于将数据流分配给所述多个资源组中的部分或全部;以及 多个资源组,每个资源组对被分配到该资源组的数据流进行解码处理。
8.根据权利要求7所述的数据流处理系统,其特征在于,分配模块用于根据所述多个资源组的负荷,将数据流分配给所述多个资源组中的部分或全部。
9.根据权利要求8所述的数据流处理系统,其特征在于,分配模块进一步用于对每个资源组分配一个数据流,如果仍存在未分配的数据流,分配模块则根据所述多个资源组的负荷将未分配的数据流分配给所述多个资源组,直至不存在未分配的数据流。
10.根据权利要求9所述的数据流处理系统,其特征在于,分配模块在分配了所有数据流之后,进一步用于通过以下方式中的至少之一对已经分配的数据流的分配情况进行调整根据数据流的片段数量对数据流的分配情况进行调整;根据数据流的格式对数据流的分配情况进行调整;以及 根据数据流的属性对数据流的分配情况进行调整。
全文摘要
本发明公开了一种数据流处理方法和系统,该方法用于借助众核处理器的多个处理核心对数据流进行解码处理,其中,多个处理器核心被划分为多个资源组,该方法包括将数据流分配给多个资源组中的部分或全部;以及每个资源组对被分配到该资源组的数据流进行解码处理。本发明通过将数据流分配给多个处理核心划分得到的多个资源组中的部分或全部,并在每个资源组中对被分配到该资源组的数据流进行解码处理,从而能够对多个数据流进行并行处理,并且减少各个流的各个片段输入产生的响应延迟以及整个流的响应延迟,提高了处理效率,优化了处理器资源的使用。
文档编号H04L29/06GK102761487SQ20121024250
公开日2012年10月31日 申请日期2012年7月12日 优先权日2012年7月12日
发明者云晓春, 刘立, 柳胜杰, 薛晨, 袁庆升, 许建卫, 邵宗有, 陈训逊 申请人:国家计算机网络与信息安全管理中心, 曙光信息产业(北京)有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1