视频数据存储、分析方法、装置、系统、通信设备及存储介质转让专利

申请号 : CN202211553093.1

文献号 : CN115618050B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 褚立强

申请人 : 苏州浪潮智能科技有限公司

摘要 :

本发明实施例提供了一种视频数据存储、分析方法、装置、系统、通信设备及存储介质,包括:将实时获取的视频数据基于预设时间窗口划分为连续数据段;根据连续数据段生成下层索引;根据下层索引以及预设时间窗口生成上层索引;将视频数据以及下层索引分布式存储于大数据集群,上层索引存储于数据查询节点。在本发明实施例中,通过基于双层分布式索引结构实现对实时获取的视频数据的存储,相对于现有技术,通过索引的构建可以使实时视频数据存储效率显著提升,通过大数据集群实现视频数据以及所述下层索引的分布式存储,使视频数据实时有效的存储,实现高效的实时视频数据流写入以及流数据查询。

权利要求 :

1.一种视频数据存储方法,其特征在于,所述方法包括:将实时获取的视频数据基于预设时间窗口划分为连续数据段;

根据所述连续数据段生成不同数据段对应的下层索引;

根据所述下层索引以及所述预设时间窗口生成上层索引;

将所述视频数据以及所述下层索引分布式存储于大数据集群,所述上层索引存储于数据查询节点;

所述下层索引对应的索引结构表示为:

< k,v1>

其中,k表示所述数据段的键值,v1表示所述数据段对应的视频数据;

所述上层索引对应的索引结构表示为:

< t,v2>

其中,t为所述预设时间窗口对应的时间戳,v2为所述下层索引对应的指针。

2.根据权利要求1所述的视频数据存储方法,其特征在于,在所述将所述视频数据以及所述下层索引分布式存储于大数据集群,所述上层索引存储于数据查询节点的步骤之后,所述方法还包括:接收用户端发送的视频数据查询请求;

判断在所述数据查询节点中是否存在所述视频数据查询请求对应的查询结果;

若是,则将所述查询结果返回至所述用户端;

若否,则根据所述视频数据查询请求在索引构建节点中进行查询处理。

3.根据权利要求2所述的视频数据存储方法,其特征在于,所述根据所述视频数据查询请求在索引构建节点中进行查询处理包括:根据所述视频数据查询请求判断所述索引构建节点中是否存在所述视频数据查询请求对应的所述查询结果;

若是,则将所述查询结果返回至所述用户端;

若否,则获取所述视频数据查询请求对应的目标视频数据,并将所述目标视频数据进行预处理,生成预处理视频数据,并将所述预处理视频数据进行分析处理得到所述查询结果。

4.一种视频数据分析方法,其特征在于,所述方法包括:实时获取第一视频数据,并根据所述第一视频数据生成下层索引;

根据所述下层索引以及预设时间窗口生成上层索引;

在检测到接收到用户端发送的视频数据查询请求的情况下,根据数据查询节点和所述上层索引向所述用户端分配所述视频数据查询请求对应的目标数据查询节点;

在检测到所述目标数据查询节点中未查询到所述视频数据查询请求对应的查询结果的情况下,获取第二视频数据;

将所述第二视频数据进行预处理,得到预处理视频数据;

将所述预处理视频数据进行推理分析处理,得到推理分析结果;

其中,所述第一视频数据以及所述下层索引分布式存储于大数据集群,所述上层索引存储于数据查询节点;

所述下层索引对应的索引结构表示为:

< k,v1>

其中,k表示数据段的键值,v1表示所述数据段对应的视频数据;

所述上层索引对应的索引结构表示为:

< t,v2>

其中,t为所述预设时间窗口对应的时间戳,v2为所述下层索引对应的指针。

5.根据权利要求4所述的视频数据分析方法,其特征在于,所述根据所述数据查询节点和所述上层索引向所述用户端分配所述视频数据查询请求对应的目标数据查询节点包括:获取所述数据查询节点对应的节点信息,以及,所述上层索引对应的索引元数据;

根据所述节点信息和所述索引元数据向所述用户端分配所述视频数据查询请求对应的目标数据查询节点。

6.根据权利要求4所述的视频数据分析方法,其特征在于,所述实时获取第一视频数据,并根据所述第一视频数据生成下层索引包括:实时获取第一视频数据;

根据预设码率将所述第一视频数据进行解码并缓存至当前时间窗口;

当所述当前时间窗口结束时,根据所述视频数据构建下层索引。

7.根据权利要求4所述的视频数据分析方法,其特征在于,所述将所述第二视频数据进行预处理,得到预处理视频数据包括:基于大数据组件对所述第二视频数据进行清洗归集处理,得到预处理视频数据。

8.根据权利要求4所述的视频数据分析方法,其特征在于,所述将所述预处理视频数据进行推理分析处理,得到推理分析结果包括:基于大数据平台分布式架构部署推理框架;

在所述推理框架中将所述预处理视频数据基于预设推理算法进行推理分析处理,得到推理分析结果。

9.根据权利要求7所述的视频数据分析方法,其特征在于,所述大数据组件包括以下任意一种或组合:Kafka组件、Spark组件以及Flink组件。

10.根据权利要求4所述的视频数据分析方法,其特征在于,所述数据查询节点内部存储的缓存包括查询结果缓存以及热点数据缓存;

所述查询结果缓存包括所述用户端直接获取的查询结果;

所述热点数据缓存包括用于预处理以及推理分析处理的视频数据。

11.根据权利要求10所述的视频数据分析方法,其特征在于,所述方法还包括:控制所述数据查询节点存储所述查询结果缓存以及所述热点数据缓存,以及,控制索引构建节点存储所述第二视频数据。

12.根据权利要求11所述的视频数据分析方法,其特征在于,所述方法还包括:通过 LRU算法按照预设时间对所述查询结果缓存、所述热点数据缓存以及所述第二视频数据进行清扫处理。

13.根据权利要求8所述的视频数据分析方法,其特征在于,所述推理框架包括以下任意一种:TensorFlow框架、Analytic Zoo框架以及Caffe框架。

14.一种视频数据存储装置,其特征在于,所述装置包括:划分模块,用于将实时获取的视频数据基于预设时间窗口划分为连续数据段;

第一生成模块,用于根据所述连续数据段生成下层索引;

第二生成模块,用于根据所述下层索引以及预设时间窗口生成上层索引;

存储模块,用于将所述视频数据以及所述下层索引分布式存储于大数据集群,所述上层索引存储于数据查询节点;

所述下层索引对应的索引结构表示为:

< k,v1>

其中,k表示所述数据段的键值,v1表示所述数据段对应的视频数据;

所述上层索引对应的索引结构表示为:

< t,v2>

其中,t为所述预设时间窗口对应的时间戳,v2为所述下层索引对应的指针。

15.一种视频数据分析装置,其特征在于,所述装置包括:第一获取模块,用于实时获取第一视频数据,并根据所述第一视频数据生成下层索引;

生成模块,用于根据所述下层索引以及预设时间窗口生成上层索引;

查询模块,用于在检测到接收到用户端发送的视频数据查询请求的情况下,根据数据查询节点和所述上层索引向所述用户端分配所述视频数据查询请求对应的目标数据查询节点;

第二获取模块,用于在检测到所述目标数据查询节点中未查询到所述视频数据查询请求对应的查询结果的情况下,获取第二视频数据;

预处理模块,用于将所述第二视频数据进行预处理,得到预处理视频数据;

推理分析处理模块,用于将所述预处理视频数据进行推理分析处理,得到推理分析结果;

其中,所述第一视频数据以及所述下层索引分布式存储于大数据集群,所述上层索引存储于所述数据查询节点;

所述下层索引对应的索引结构表示为:

< k,v1>

其中,k表示数据段的键值,v1表示所述数据段对应的视频数据;

所述上层索引对应的索引结构表示为:

< t,v2>

其中,t为所述预设时间窗口对应的时间戳,v2为所述下层索引对应的指针。

16.一种视频数据分析系统,其特征在于,包括:节点模块,预处理模块,推理模块以及存储模块;

所述节点模块用于实时获取第一视频数据,并根据所述第一视频数据生成下层索引,根据所述下层索引以及预设时间窗口生成上层索引,在检测到接收到用户端发送的视频数据查询请求的情况下,根据数据查询节点和所述上层索引向所述用户端分配所述视频数据查询请求对应的目标数据查询节点,在检测到所述目标数据查询节点中未查询到所述视频数据查询请求对应的查询结果的情况下,获取第二视频数据;

所述预处理模块用于将所述第二视频数据进行预处理,得到预处理视频数据;

所述推理模块用于将所述预处理视频数据进行推理分析处理,得到推理分析结果;

所述存储模块用于所述第一视频数据以及所述下层索引分布式存储于大数据集群,所述上层索引存储于数据查询节点;

所述下层索引对应的索引结构表示为:

< k,v1>

其中,k表示数据段的键值,v1表示所述数据段对应的视频数据;

所述上层索引对应的索引结构表示为:

< t,v2>

其中,t为所述预设时间窗口对应的时间戳,v2为所述下层索引对应的指针。

17.一种通信设备,其特征在于,包括:收发机、存储器、处理器及存储在所述存储器上并可在所述处理器上运行的程序;

所述处理器,用于读取存储器中的程序实现如权利要求1‑3中任意一项所述视频数据存储中的步骤,或者,如权利要求4‑13中任意一项所述视频数据分析方法中的步骤。

18.一种可读存储介质,用于存储程序,其特征在于,所述程序被处理器执行时实现如权利要求1‑3中任意一项所述视频数据存储方法中的步骤,或者,如权利要求4‑13中任意一项所述视频数据分析方法中的步骤。

说明书 :

视频数据存储、分析方法、装置、系统、通信设备及存储介质

技术领域

[0001] 本发明涉及视频处理技术领域,特别涉及一种视频数据存储、分析方法、装置、系统、通信设备及存储介质。

背景技术

[0002] 大数据流的高效存储与索引本身就是当今数据领域的一大难点,目前的视频数据分析系统架构下,数据直接存储在Linux文件系统或分布式文件系统如HDFS(Hadoop Distributed File System,分布式文件系统)中,这类文件系统在存储稳定、数据静态时性能良好,能够支撑历史数据分析类应用,但在数据流场景下存在严重的性能瓶颈,难以做到实时流数据高效写入和获取。
[0003] 数据流实时存储的一个关键是在不影响写入性能的前提下,快速实时地构建索引,才可以进一步实现高效查询,而目前基于数据流实时存储的索引构建主要集中于位图索引构建方法,但大数据流场景下,例如,数据流的深度分析、计算场景下,索引的更新频率高、存储开销大,现有技术无法高效实现数据流的实时存储。

发明内容

[0004] 本发明实施例的目的在于提供一种视频数据存储、分析方法、装置、系统、通信设备及存储介质,解决现有技术无法高效实现数据流的实时存储的问题,以实现灵活可靠的缓存管理,具体技术方案如下:
[0005] 在本发明实施的第一方面,首先提供了一种视频数据存储方法,所述方法包括:
[0006] 将实时获取的视频数据基于预设时间窗口划分为连续数据段;
[0007] 根据所述连续数据段生成不同数据段对应的下层索引;
[0008] 根据所述下层索引以及预设时间窗口生成上层索引;
[0009] 将所述视频数据以及所述下层索引分布式存储于大数据集群,所述上层索引存储于数据查询节点。
[0010] 可选地,所述下层索引对应的索引结构表示为:
[0011]
[0012] 其中,k表示所述数据段的键值,v表示所述数据段对应的视频数据。
[0013] 可选地,所述上层索引对应的索引结构表示为:
[0014]
[0015] 其中,t为预设时间窗口对应的时间戳,v为所述下层索引对应的指针。
[0016] 可选地,在所述将所述视频数据以及所述下层索引分布式存储于大数据集群,所述上层索引存储于数据查询节点的步骤之后,所述方法还包括:
[0017] 接收用户端发送的视频数据查询请求;
[0018] 判断在所述数据查询节点中是否存在所述视频数据查询请求对应的查询结果;
[0019] 若是,则将所述查询结果返回至所述用户端;
[0020] 若否,则根据所述视频数据查询请求在索引构建节点中进行查询处理。
[0021] 可选地,所述根据所述视频数据查询请求在索引构建节点中进行查询处理包括:
[0022] 根据所述视频数据查询请求判断所述索引构建节点中是否存在所述视频数据查询请求对应的所述查询结果;
[0023] 若是,则将所述查询结果返回至所述用户端;
[0024] 若否,则获取所述视频数据查询请求对应的目标视频数据,并将所述目标视频数据进行预处理,生成所述预处理视频数据,并将所述预处理视频数据进行分析处理得到所述查询结果。
[0025] 在本发明实施的第二方面,还提供了一种视频数据分析方法,所述方法包括:
[0026] 实时获取第一视频数据,并根据所述第一视频数据生成下层索引;
[0027] 根据所述下层索引以及预设时间窗口生成上层索引;
[0028] 在检测到接收到用户端发送的视频数据查询请求的情况下,根据所述数据查询节点和所述上层索引向所述用户端分配所述视频数据查询请求对应的目标数据查询节点;
[0029] 在检测到所述目标数据查询节点中未查询到所述视频数据查询请求对应的查询结果的情况下,获取第二视频数据;
[0030] 将所述第二视频数据进行预处理,得到预处理视频数据;
[0031] 将所述预处理视频数据进行推理分析处理,得到推理分析结果;
[0032] 其中,所述第一视频数据以及所述下层索引分布式存储于大数据集群,所述上层索引存储于数据查询节点。
[0033] 可选地,所述根据所述数据查询节点和所述上层索引向所述用户端分配所述视频数据查询请求对应的目标数据查询节点包括:
[0034] 获取所述数据查询节点对应的节点信息,以及,所述上层索引对应的索引元数据;
[0035] 根据所述节点信息和所述索引元数据向所述用户端分配所述视频数据查询请求对应的目标数据查询节点。
[0036] 可选地,所述实时获取视频数据,并根据所述视频数据生成下层索引包括:
[0037] 实时获取视频数据;
[0038] 根据预设码率将所述视频数据进行解码并缓存至当前时间窗口;
[0039] 当所述当前时间窗口结束时,根据所述视频数据构建下层索引。
[0040] 可选地,所述将所述第二视频数据进行预处理,得到预处理视频数据包括:
[0041] 基于大数据组件对所述第二视频数据进行清洗归集处理,得到预处理视频数据。
[0042] 可选地,所述将所述预处理视频数据进行推理分析处理,得到推理分析结果包括:
[0043] 基于大数据平台分布式架构部署推理框架;
[0044] 在所述推理框架中将所述预处理视频数据基于预设推理算法进行推理分析处理,得到推理分析结果。
[0045] 可选地,所述大数据组件包括以下任意一种或组合:
[0046] Kafka组件、Spark组件以及Flink组件。
[0047] 可选地,所述数据查询节点内部存储的缓存包括查询结果缓存以及热点数据缓存;
[0048] 所述查询结果缓存包括所述用户端直接获取的查询结果;
[0049] 所述热点数据缓存包括用于预处理以及推理分析处理的视频数据。
[0050] 可选地,所述方法还包括:
[0051] 控制所述数据查询节点存储所述查询结果缓存以及所述热点数据缓存,以及,[0052] 控制索引构建节点存储所述第二视频数据。
[0053] 可选地,所述方法还包括:
[0054] 通过 LRU算法按照预设时间对查询结果缓存、所述热点数据缓存以及所述第二视频数据进行清扫处理。
[0055] 可选地,所述推理框架包括以下任意一种:
[0056] TensorFlow框架、Analytic Zoo框架以及Caffe框架。
[0057] 在本发明实施的第三方面,还提供了一种视频数据存储装置,所述装置包括:
[0058] 划分模块,用于将实时获取的视频数据基于预设时间窗口划分为连续数据段;
[0059] 第一生成模块,用于根据所述连续数据段生成下层索引;
[0060] 第二生成模块,用于根据所述下层索引以及预设时间窗口生成上层索引;
[0061] 存储模块,用于将所述视频数据以及所述下层索引分布式存储于大数据集群,所述上层索引存储于数据查询节点。
[0062] 在本发明实施的第四方面,还提供了一种视频数据分析装置,所述装置包括:
[0063] 第一获取模块,用于实时获取第一视频数据,并根据所述第一视频数据生成下层索引;
[0064] 生成模块,用于根据所述下层索引以及预设时间窗口生成上层索引;
[0065] 查询模块,用于在检测到接收到用户端发送的视频数据查询请求的情况下,根据所述数据查询节点和所述上层索引向所述用户端分配所述视频数据查询请求对应的目标数据查询节点;
[0066] 第二获取模块,用于在检测到所述目标数据查询节点中未查询到所述视频数据查询请求对应的查询结果的情况下,获取第二视频数据;
[0067] 预处理模块,用于将所述第二视频数据进行预处理,得到预处理视频数据;
[0068] 推理分析处理模块,用于将所述预处理视频数据进行推理分析处理,得到推理分析结果;
[0069] 其中,所述第一视频数据以及所述下层索引分布式存储于大数据集群,所述上层索引存储于数据查询节点。
[0070] 在本发明实施的第五方面,还提供了一种视频数据分析系统,包括:节点模块,预处理模块,推理模块以及存储模块;
[0071] 所述节点模块用于实时获取第一视频数据,并根据所述第一视频数据生成下层索引,根据所述下层索引以及预设时间窗口生成上层索引,在检测到接收到用户端发送的视频数据查询请求的情况下,根据所述数据查询节点和所述上层索引向所述用户端分配所述视频数据查询请求对应的目标数据查询节点,在检测到所述目标数据查询节点中未查询到所述视频数据查询请求对应的查询结果的情况下,获取第二视频数据;
[0072] 所述预处理模块用于将所述第二视频数据进行预处理,得到预处理视频数据;
[0073] 所述推理模块用于将所述预处理视频数据进行推理分析处理,得到推理分析结果;
[0074] 所述存储模块用于所述第一视频数据以及所述下层索引分布式存储于大数据集群,所述上层索引存储于数据查询节点。
[0075] 在本发明实施的第六方面,还提供了一种通信设备,包括:收发机、存储器、处理器及存储在所述存储器上并可在所述处理器上运行的程序;
[0076] 所述处理器,用于读取存储器中的程序实现执行上述第一方面任一所述的视频数据存储方法,或者,上述第二方面任一所述的视频数据分析方法;
[0077] 在本发明实施的第七方面,还提供了一种计算机可读存储介质,所述计算机可读存储介质中存储有指令,当其在计算机上运行时,使得计算机执行上述第一方面任一所述的视频数据存储方法,或者,上述第二方面任一所述的视频数据分析方法。
[0078] 本发明实施例提供的视频数据存储方法,通过将实时获取的视频数据基于预设时间窗口划分为连续数据段;根据所述连续数据段生成下层索引;根据所述下层索引以及预设时间窗口生成上层索引;将所述视频数据以及所述下层索引分布式存储于大数据集群,所述上层索引存储于数据查询节点。本发明实施例中,适用于视频数据流场景的分布式索引及架构,分为上下两层索引,通过基于双层分布式索引结构实现对实时获取的视频数据的存储,相对于现有技术,通过索引的构建可以使实时视频数据存储效率显著提升,通过大数据集群实现视频数据以及所述下层索引的分布式存储,使视频数据实时有效的存储,实现高效的实时视频数据写入以及视频数据查询。
[0079] 另外,基于双层分布式索引结构,并结合大数据分布式存储、计算组件,统一技术架构大幅降低视频数据的预处理和推理过程实现难度。

附图说明

[0080] 为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍。
[0081] 图1为本发明实施例提供的视频数据存储方法的步骤流程图一;
[0082] 图2是本发明实施例提供的视频数据存储方法的步骤流程图二;
[0083] 图3是图2中本发明实施例提供的视频数据存储方法的步骤108的方法流程图;
[0084] 图4是本发明实施例提供的视频数据分析方法的步骤流程图一;
[0085] 图5是本发明实施例提供的视频数据分析方法的步骤流程图二;
[0086] 图6是本发明实施例提供的视频数据存储装置的装置框图;
[0087] 图7是本发明实施例提供的视频数据分析装置的装置框图;
[0088] 图8是本发明实施例提供的现有技术中视频数据分析系统的系统架构示意图;
[0089] 图9是本发明实施例提供的视频数据分析系统的系统架构示意图;
[0090] 图10是本发明实施例提供的一种通信设备示意图。

具体实施方式

[0091] 为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合附图对本发明的各实施方式进行详细的阐述。然而,本领域的普通技术人员可以理解,在本发明各实施方式中,为了使读者更好地理解本申请而提出了许多技术细节。但是,即使没有这些技术细节和基于以下各实施方式的种种变化和修改,也可以实现本申请所要求保护的技术方案。以下各个实施例的划分是为了描述方便,不应对本发明的具体实现方式构成任何限定,各个实施例在不矛盾的前提下可以相互结合相互引用。
[0092] 参照图1,示出了本发明实施例提供的视频数据存储方法的步骤流程图一,所述方法可以包括:
[0093] 步骤101,将实时获取的视频数据基于预设时间窗口划分为连续数据段;
[0094] 需要说明的是,在本申请实施例中,为了实现实时视频流数据的快速存储和查询,通过引入双层分布式索引结构,并且索引构建过程结合基于排序的批量构建技术,进一步对时间窗口分片,并结合大数据分布式存储,提高构建性能。
[0095] 现有视频数据分析系统的架构下,在存储层面只保存查询和计算结果,不存储完整数据流,而数据流的深度分析、计算场景需要依赖数据流的实时存储,在本申请实施例中,实时获取的视频数据是一种带有时间属性的数据流,因此,根据时间维度,即预设时间窗口将视频数据切分为连续的数据段。
[0096] 需要说明的是,预设时间窗口可以是基于实际场景设置的参数值,连续数据段只是将实时完整获取的视频数据按照预设时间间隔划分为连续的数据段,其中,每个数据段对应的时间段相同,但是每个数据段中的数据量不一定相同。
[0097] 步骤102,根据连续数据段生成不同数据段对应的下层索引。
[0098] 需要说明的是,在步骤101中将实时视频数据依据时间维度划分为连续数据段,并且为每个数据段生成下层索引。
[0099] 需要说明的是,在本申请实施例中,索引结构采用B+树的形式,B+数是一种树形数据结构,是由有限个节点组成具有层次关系的集合,索引结构还包含过滤器和统计信息,用以提升查询效率。
[0100] 进一步地,所述下层索引对应的索引结构表示为,其中,k表示数据段的键值,v表示数据段对应的视频数据,键值是windows中注册表中的概念,键值位于注册表结构链末端,和文件系统的文件类似,包含当前计算机及应用程序执行时使用的实际配置信息和数据,v表示连续数据段对应的视频数据,也即具体的数据内容,表现形式为二进制数据内容。
[0101] 步骤103,根据下层索引以及预设时间窗口生成上层索引。
[0102] 需要说明的是,在本申请实施例中,在构建好下层索引之后,可以根据下层索引和预设时间窗口生成上层索引,预设时间窗口本质上是一种时间参数,可以根据实际情况调节,具体的,所述上层索引对应的索引结构表示为其中,t为预设时间窗口对应的时间戳,v为所述下层索引对应的指针。
[0103] 其中,预设时间窗口对应的时间戳可以理解为在一个连续时间窗口中的某个时间点,这个时间点作为该时间窗口的唯一标识,例如,在8分钟至8分30秒的一个时间窗口中,将时间戳确定为8分1秒,具体的,本申请可以根据实际情况下设置时间窗口具体数据以及时间戳,在此不做具体限定。
[0104] 另外,上层索引的构建离不开下层索引,因此,上层索引还包括对下层索引的引用,即下层索引对应的指针,该指针的作用即为指向下层索引。
[0105] 步骤104,将视频数据以及下层索引分布式存储于大数据集群,上层索引存储于数据查询节点。
[0106] 需要说明的是,在前序步骤中构建好上层索引和下层索引,即两层分布式索引,下层索引由数据段的键值构成,占用存储空间较大,因此采用分布式存储保存,同时借助分布式存储集群的能力保证负载均衡。而上层索引由时间窗口及下层索引的引用构成,数据量小,可直接在性能较好的单节点存储。在本申请实施例中,需要将视频数据以及下层索引分布式存储于大数据集群中,上层索引存储于数据查询节点,通过将数据存储于大数据集群可以实现视频数据的快速存储和获取。
[0107] 本发明实施例提供的视频数据存储方法,通过将实时获取的视频数据基于预设时间窗口划分为连续数据段;根据所述连续数据段生成下层索引;根据所述下层索引以及预设时间窗口生成上层索引;将所述视频数据以及所述下层索引分布式存储于大数据集群,所述上层索引存储于数据查询节点。本发明实施例中,适用于视频数据流场景的分布式索引及架构,分为上下两层索引,通过基于双层分布式索引结构实现对实时获取的视频数据的存储,相对于现有技术,通过索引的构建可以使实时视频数据存储效率显著提升,通过大数据集群实现视频数据以及所述下层索引的分布式存储,使视频数据实时有效的存储,实现高效的实时视频数据流写入以及流数据查询。
[0108] 参照图2,示出了本发明实施例提供的视频数据存储方法的步骤流程图二,所述方法可以包括:
[0109] 步骤101,将实时获取的视频数据基于预设时间窗口划分为连续数据段。
[0110] 步骤102,根据连续数据段生成不同数据段对应的下层索引。
[0111] 步骤103,根据下层索引以及预设时间窗口生成上层索引。
[0112] 步骤104,将视频数据以及下层索引分布式存储于大数据集群,上层索引存储于数据查询节点。
[0113] 上述步骤101‑104参照前序论述再次不再赘述。
[0114] 步骤105,接收用户端发送的视频数据查询请求。
[0115] 步骤106,判断在数据查询节点中是否存在视频数据查询请求对应的查询结果。
[0116] 步骤107,若是,则将查询结果返回至所述用户端。
[0117] 步骤108,若否,则根据视频数据查询请求在索引构建节点中进行查询处理。
[0118] 在步骤105‑108中,在对视频数据进行存储之后,即将所述视频数据以及所述下层索引分布式存储于大数据集群,所述上层索引存储于数据查询节点之后,可以进一步地实现对视频数据的查询,具体的,可以接收用户端发送的视频数据查询请求,即当用户存在查询需求的情况下,会主动向本申请中的数据查询节点发送视频数据查询请求,判断在数据查询节点中是否存在视频数据查询请求所需的查询结果,若存在,则数据查询节点可以直接将查询结果反馈至用户,即将查询结果返回至用户端;若不存在,则可以根据视频数据查询请求在索引构建节点中进行查询处理。
[0119] 进一步地,参照图3,图3是图2中本发明实施例提供的视频数据存储方法的步骤108的方法流程图,步骤108包括:
[0120] 步骤1081,根据视频数据查询请求判断索引构建节点中是否存在视频数据查询请求对应的查询结果。
[0121] 步骤1082,若是,则将查询结果返回至所述用户端。
[0122] 步骤1083,若否,则获取视频数据查询请求对应的目标视频数据,并将目标视频数据进行预处理,生成预处理视频数据,并将预处理视频数据进行分析处理得到查询结果。
[0123] 需要说明的是,上述步骤1081‑1083中,在数据查询节点中不存在视频数据查询请求所需的查询结果时,可以根据根据视频数据查询请求在索引构建节点中进行查询处理,具体的,根据视频数据查询请求判断索引构建节点中是否存在视频数据查询请求对应的所述查询结果;其中,索引构建节点是根据实时视频数据构建下层索引,在完成下层索引构建后,选择合适的查询节点并向数据查询节点发布下层索引,因此,数据查询时首先查询在数据查询节点中查询上层索引,再在索引构建节点中查询下层索引。
[0124] 若是,则将查询结果返回至用户端;若否,则获取视频数据查询请求对应的目标视频数据,并将目标视频数据进行预处理,生成预处理视频数据,并将预处理视频数据进行分析处理得到查询结果,即当在索引构建节点中查询下层索引也无法查询到视频数据查询请求对应的所述查询结果时,则需要获取新的视频数据,并对视频数据进行分析处理等才向用户输出。
[0125] 本发明实施例提供的视频数据存储方法,通过基于双层分布式索引结构实现对实时获取的视频数据的存储,相对于现有技术,通过索引的构建可以使实时视频数据存储效率显著提升,通过大数据集群实现视频数据以及所述下层索引的分布式存储,使视频数据实时有效的存储,执行数据查询时,首先搜索上层索引,再根据对应的下层索引获取结果数据,实现高效的实时视频数据流写入以及流数据查询。
[0126] 参照图4,示出了本发明实施例提供的视频数据分析方法的步骤流程图一,所述方法可以包括:
[0127] 步骤201,实时获取第一视频数据,并根据第一视频数据生成下层索引。
[0128] 进一步地,步骤201可以包括:实时获取第一视频数据;根据预设码率将所述第一视频数据进行解码并缓存至当前时间窗口;当所述当前时间窗口结束时,根据所述视频数据构建下层索引。
[0129] 需要说明的是,在本申请实施例中,将实时获取的第一视频数据按照预设码率进行解码处理,即将第一视频数据的原码率统一更改为预设码率,方便对视频数据进行统一解码处理,得到相同码率的视频数据,方便后续对视频数据进行分析处理,实时获取的第一视频数据是一种带有时间属性的数据流,构建下层索引需要根据预设时间窗口将视频数据切分为连续的数据段,因此,将解码后的第一视频流数据可以缓存至当前时间窗口,即对应的时间窗口,当当前时间窗口结束时,可以根据当前时间窗口中的视频数据即数据段生成下层索引。
[0130] 步骤202,根据下层索引以及预设时间窗口生成上层索引。
[0131] 其中,所述第一视频数据以及所述下层索引分布式存储于大数据集群,所述上层索引存储于数据查询节点。
[0132] 需要说明的是,在本申请实施例中,将实时视频数据依据时间维度划分为连续数据段,并且为每个数据段生成下层索引,索引结构采用B+树的形式,B+数是一种树形数据结构,是由有限个节点组成具有层次关系的集合,索引结构还包含过滤器和统计信息,用以提升查询效率。
[0133] 进一步地,所述下层索引对应的索引结构表示为,其中,k表示所述连续数据段的键值,v表示所述连续数据段对应的视频数据,键值是windows中注册表中的概念,键值位于注册表结构链末端,和文件系统的文件类似,包含当前计算机及应用程序执行时使用的实际配置信息和数据,v表示连续数据段对应的视频数据,也即具体的数据内容,表现形式为二进制数据内容。
[0134] 需要说明的是,在本申请实施例中,在构建好下层索引之后,可以根据下层索引和预设时间窗口生成上层索引,预设时间窗口本质上是一种时间参数,可以根据实际情况调节,具体的,所述上层索引对应的索引结构表示为其中,t为预设时间窗口对应的时间戳,v为所述下层索引对应的指针。
[0135] 其中,预设时间窗口对应的时间戳可以理解为在一个连续时间窗口中的某个时间点,这个时间点作为该时间窗口的唯一标识,例如,在8分钟至8分30秒的一个时间窗口中,将时间戳确定为8分1秒,具体的,本申请可以根据实际情况下设置时间窗口具体数据以及时间戳,在此不做具体限定。
[0136] 另外,上层索引的构建离不开下层索引,因此,上层索引还包括对下层索引的引用,即下层索引对应的指针,该指针的作用即为指向下层索引。
[0137] 步骤203,在检测到接收到用户端发送的视频数据查询请求的情况下,根据数据查询节点和上层索引向所述用户端分配视频数据查询请求对应的目标数据查询节点。
[0138] 进一步地,所述根据所述数据查询节点和所述上层索引向所述用户端分配所述视频数据查询请求对应的目标数据查询节点包括:获取所述数据查询节点对应的节点信息,以及,所述上层索引对应的索引元数据;根据所述节点信息和所述索引元数据向所述用户端分配所述视频数据查询请求对应的目标数据查询节点。
[0139] 需要说明的是,在本申请实施例中,在检测到接收到用户端发送的视频数据查询请求的情况下,根据所述数据查询节点和所述上层索引向所述用户端分配所述视频数据查询请求对应的目标数据查询节点,具体的,可以获取数据查询节点对应的节点信息,以及,上层索引对应的索引元数据;其中,节点信息包括节点负载,即表示节点工作情况,面向于查询响应,根据节点负载情况可以合理选取数据查询节点,索引元数据即表示索引数据的分布情况,进而,根据节点信息和索引元数据可以合理向用户端分配视频数据查询请求对应的目标数据查询节点。
[0140] 另外,根据节点信息可以实现定时更新节点权重,加权轮询以选取合适的数据查询节点,并且实现动态调度集群中的各类节点,使视频数据分析更加稳定运行。
[0141] 步骤204,在检测到目标数据查询节点中未查询到视频数据查询请求对应的查询结果的情况下,获取第二视频数据。
[0142] 需要说明的是,在本申请实施例中,在检测到目标数据查询节点中未查询到视频数据查询请求对应的查询结果的情况下,获取第二视频数据,即获取新的实时的视频数据。
[0143] 若在目标数据查询节点中查询到视频数据查询请求对应的查询结果,则可以直接将查询结果向用户端反馈。
[0144] 步骤205,将第二视频数据进行预处理,得到预处理视频数据。
[0145] 所述将所述第二视频数据进行预处理,得到预处理视频数据包括:基于大数据组件对所述第二视频数据进行清洗归集处理,得到预处理视频数据。
[0146] 需要说明的是,在本申请实施例中,将第二视频数据进行预处理,得到预处理视频数据,即基于大数据组件对第二视频数据进行清洗归集处理,得到预处理视频数据,通过借助大数据组件如Kafka、Spark、Flink提供的计算能力,快速开发预处理程序,对第二视频数据进行清洗和归集,可以得到被推理任务直接取用的高质量数据,便于对视频数据的进一步分析处理。
[0147] 进一步地,所述大数据组件包括以下任意一种或组合:Kafka组件、Spark组件以及Flink组件。
[0148] 步骤206,将预处理视频数据进行推理分析处理,得到推理分析结果。
[0149] 所述将所述预处理视频数据进行推理分析处理,得到推理分析结果包括:基于大数据平台分布式架构部署推理框架;在所述推理框架中将所述预处理视频数据基于预设推理算法进行推理分析处理,得到推理分析结果。
[0150] 进一步地,所述推理框架包括以下任意一种:TensorFlow框架、Analytic Zoo框架以及Caffe框架。
[0151] 需要说明的是,在本申请实施例中,对预处理视频数据进行推理分析处理,同样借助大数据平台分布式架构,实现部署各类推理框架,如TensorFlow、Analytic Zoo、Caffe等,并且通过深度卷积神经网络、Deep Learning等推理算法,使得推理过程和数据流转更加高效。
[0152] 本发明实施例中,通过对视频数据进行存储、查询以及分析处理,基于两层分布式索引实现高效的实时视频数据流写入以及流数据查询,并且在此基础上对现有的视频数据分析系统进行改进设计,结合大数据分布式存储、计算组件,统一技术架构降低数据的预处理和推理过程实现难度,将系统功能进行切分,划分为处理不同任务的各类节点,基于大数据平台的分布式架构,在出现更高的性能需求时轻松进行线性扩展。
[0153] 参照图5,示出了本发明实施例提供的视频数据分析方法的步骤流程图二,所述方法可以包括:
[0154] 步骤201,实时获取第一视频数据,并根据第一视频数据生成下层索引。
[0155] 步骤202,根据下层索引以及预设时间窗口生成上层索引。
[0156] 其中,所述第一视频数据以及所述下层索引分布式存储于大数据集群,所述上层索引存储于数据查询节点。
[0157] 步骤203,在检测到接收到用户端发送的视频数据查询请求的情况下,根据数据查询节点和上层索引向用户端分配视频数据查询请求对应的目标数据查询节点。
[0158] 步骤204,在检测到目标数据查询节点中未查询到视频数据查询请求对应的查询结果的情况下,获取第二视频数据。
[0159] 步骤205,将第二视频数据进行预处理,得到预处理视频数据。
[0160] 步骤206,将预处理视频数据进行推理分析处理,得到推理分析结果。
[0161] 需要说明的是,上述步骤201‑206参照前序论述再次不再赘述。
[0162] 步骤207,控制数据查询节点存储查询结果缓存以及热点数据缓存,以及,控制索引构建节点存储第二视频数据。
[0163] 所述数据查询节点内部存储的缓存包括查询结果缓存以及热点数据缓存;所述查询结果缓存包括所述用户端直接获取的查询结果;所述热点数据缓存包括用于预处理以及推理分析处理的视频数据。
[0164] 需要说明的是,数据查询节点可以实现同时在节点内部维护两级缓存,包括对查询结果缓存和热点数据缓存,以快速满足包含相同查询条件和具有数据热点场景下的查询请求,其中,查询结果不需要再进行数据预处理以及推理分析处理的数据,当用户端进行查询请求时可以直接获取对应的查询结果,而热点数据即为视频数据,虽然不一定需要从索引构建节点中重新获取,但是当用户进行查询请求时,需要对热点数据进行预处理以及推理分析处理,才能向用户端输出。
[0165] 同样的,索引构建节点可以接收实时视频数据,即存储第二视频数据,第二视频数据即新获取的实时视频数据。
[0166] 步骤208,通过 LRU算法按照预设时间对查询结果缓存、热点数据缓存以及第二视频数据进行清扫处理。
[0167] 需要说明的是,在本申请实施例中,在对数据进行存储后,由于大数据平台以及硬盘的缓存容量是有限的,因此需要定期对缓存数据进行清扫,通过LRU(Least recently used,最近最少使用)算法可以在预设时间间隔中对查询结果缓存、所述热点数据缓存以及所述第二视频数据进行清扫处理,防止使用量较少的资源过多占用内存容量,导致在对视频数据存储、查询以及分析时,系统处理速度变慢。
[0168] 本发明实施例中,通过对视频数据进行存储、查询以及分析处理,基于两层分布式索引实现高效的实时视频数据流写入以及流数据查询,并且在此基础上对现有的视频数据分析系统进行改进设计,结合大数据分布式存储、计算组件,统一技术架构降低数据的预处理和推理过程实现难度,将系统功能进行切分,划分为处理不同任务的各类节点,基于大数据平台的分布式架构,在出现更高的性能需求时轻松进行线性扩展。进一步地,通过三级缓存,结合了流数据和索引结构的特点,层次分明,有效提高查询效率。
[0169] 参照图6,示出了本发明实施例提供的视频数据存储装置的装置框图,所述装置可以包括:
[0170] 划分模块601,用于将实时获取的视频数据基于预设时间窗口划分为连续数据段;
[0171] 第一生成模块602,用于根据所述连续数据段生成不同数据段对应的下层索引;
[0172] 第二生成模块603,用于根据所述下层索引以及所述预设时间窗口生成上层索引;
[0173] 存储模块604,用于将所述视频数据以及所述下层索引分布式存储于大数据集群,所述上层索引存储于数据查询节点。
[0174] 本发明实施例中,适用于视频数据流场景的分布式索引及架构,分为上下两层索引,通过基于双层分布式索引结构实现对实时获取的视频数据的存储,相对于现有技术,通过索引的构建可以使实时视频数据存储效率显著提升,通过大数据集群实现视频数据以及所述下层索引的分布式存储,使视频数据实时有效的存储,实现高效的实时视频数据流写入以及流数据查询。
[0175] 参照图7,示出了本发明实施例提供的视频数据分析装置的装置框图,所述装置可以包括:
[0176] 第一获取模块701,用于实时获取第一视频数据,并根据所述第一视频数据生成下层索引;
[0177] 生成模块702,用于根据所述下层索引以及预设时间窗口生成上层索引;
[0178] 查询模块703,用于在检测到接收到用户端发送的视频数据查询请求的情况下,根据所述数据查询节点和所述上层索引向所述用户端分配所述视频数据查询请求对应的目标数据查询节点;
[0179] 第二获取模块704,用于在检测到所述目标数据查询节点中未查询到所述视频数据查询请求对应的查询结果的情况下,获取第二视频数据;
[0180] 预处理模块705,用于将所述第二视频数据进行预处理,得到预处理视频数据;
[0181] 推理分析处理模块706,用于将所述预处理视频数据进行推理分析处理,得到推理分析结果;
[0182] 其中,所述第一视频数据以及所述下层索引分布式存储于大数据集群,所述上层索引存储于数据查询节点。
[0183] 本发明实施例中,通过对视频数据进行存储、查询以及分析处理,基于两层分布式索引实现高效的实时视频数据流写入以及流数据查询,并且在此基础上对现有的视频数据分析系统进行改进设计,结合大数据分布式存储、计算组件,统一技术架构降低数据的预处理和推理过程实现难度,将系统功能进行切分,划分为处理不同任务的各类节点,基于大数据平台的分布式架构,在出现更高的性能需求时轻松进行线性扩展。
[0184] 参照图8,示出了本发明实施例提供的现有技术中视频数据分析系统的系统架构示意图,图中包括视频数据输入端口、预处理模块、推理模块、输出端口以及硬盘存储,视频数据输入,即接收或采集视频数据,将其存储在传统文件系统或HDFS等分布式文件系统中,作为分析数据源;数据预处理,即编写、定义预处理程序,对接入的视频数据进行大小调整、裁剪、归一等操作,以获取更高质量的分析数据,减少冗余计算和推理延迟;数据分析,即将预处理后的数据解码成目标组织结构,输入到深度神经网络中进行推理;数据输出,即将分析结果输出到存储并反馈给用户。
[0185] 可以明显看出现有技术中,在系统处理过程中,预处理和深度神经网络推理过程涉及对数据的计算,输入和输出过程涉及对数据的存储,但是现有技术中的数据存储只有视频流数据,在存储层面只保存查询和计算结果,不存储完整数据流,而数据流的深度分析、计算场景需要依赖数据流的实时存储,并且没有对数据进行索引构建,查询比较耗费时间,对实时数据的存储无法快速实现。另外,现有的视频数据分析系统中,数据存储、数据预处理、数据分析分属于不同的系统或软件实现,彼此之间技术关联较少,即使对其中某环节进行了优化或技术能力提升,仍会受制于其他环节的性能瓶颈制约,难以在整体上得到改进,同时当前的视频数据分析系统通常查询类别相对简单,为了进一步统计或分析查询结果,往往需要用户自定义编程实现,数据预处理也面对同样的问题,这样会大大增加开发和使用成本。并且,现有的视频数据分析系统大部分仅支持单机运行,缺乏横向扩展能力,这就意味着对服务器的配置要求极高且价格昂贵,业务承受能力也因此受限。此外,一旦服务器宕机,将使得业务中断,影响用户正常使用,甚至造成严重的生产后果。
[0186] 参照图9,示出了本发明实施例提供的视频数据分析系统的系统架构示意图,图中包括控制节点、数据查询节点、索引构建节点、预处理模块,推理模块,存储模块以及硬盘缓存模块。
[0187] 本发明实施例提供的视频数据分析系统,所述系统可以包括:节点模块,预处理模块,推理模块以及存储模块;
[0188] 所述节点模块用于实时获取第一视频数据,并根据所述第一视频数据生成下层索引,根据所述下层索引以及预设时间窗口生成上层索引,在检测到接收到用户端发送的视频数据查询请求的情况下,根据所述数据查询节点和所述上层索引向所述用户端分配所述视频数据查询请求对应的目标数据查询节点,在检测到所述目标数据查询节点中未查询到所述视频数据查询请求对应的查询结果的情况下,获取第二视频数据;
[0189] 所述预处理模块用于将所述第二视频数据进行预处理,得到预处理视频数据;
[0190] 所述推理模块用于将所述预处理视频数据进行推理分析处理,得到推理分析结果;
[0191] 所述存储模块用于所述第一视频数据以及所述下层索引分布式存储于大数据集群,所述上层索引存储于数据查询节点。
[0192] 进一步地,节点模块包括索引构建节点、数据查询节点、控制节点。
[0193] 本发明实施例中的视频数据分析系统,通过设置索引构建节点、数据查询节点、控制节点,配合大数据集群的存储能力,实现视频流数据快速存储和获取。在大数据集群部署相应的流计算组件,以支撑数据预处理,同时引入平台支持的人工智能框架,将整个视频数据分析系统流程全部集成到同一个集群上,实现流程贯穿和数据打通。
[0194] 另外,本发明实施例中的视频数据分析系统,实现了高效数据流索引构建、存储和计算的实时视频数据分析系统,系统数据存储基于大数据分布式平台,在分布式文件系统之上,借助双层索引实现实时视频数据的快速索引构建、存储和查询;在文件系统之上,引入成熟的流计算框架、深度学习框架,便于据此实现对视频数据的预处理和推理计算;存储和计算实现组件分离但技术耦合,在出现存储或计算瓶颈时,能够从全局角度优化系统,分布式框架本身的特性也使得系统的线性扩展容易得到实现。
[0195] 本发明实施例还提供了一种通信设备,如图10所示,包括处理器401、通信接口402、存储器403和通信总线404,其中,处理器401,通信接口402,存储器403通过通信总线
404完成相互间的通信;
[0196] 存储器403,用于存放计算机程序;
[0197] 处理器401,用于执行存储器403上所存放的程序时,可以实现如下步骤:
[0198] 将实时获取的视频数据基于预设时间窗口划分为连续数据段;根据所述连续数据段生成下层索引;根据所述下层索引以及预设时间窗口生成上层索引;将所述视频数据以及所述下层索引分布式存储于大数据集群,所述上层索引存储于数据查询节点。
[0199] 或者,实现如下步骤:
[0200] 实时获取第一视频数据,并根据所述第一视频数据生成下层索引;根据所述下层索引以及预设时间窗口生成上层索引;在检测到接收到用户端发送的视频数据查询请求的情况下,根据所述数据查询节点和所述上层索引向所述用户端分配所述视频数据查询请求对应的目标数据查询节点;在检测到所述目标数据查询节点中未查询到所述视频数据查询请求对应的查询结果的情况下,获取第二视频数据;将所述第二视频数据进行预处理,得到预处理视频数据;将所述预处理视频数据进行推理分析处理,得到推理分析结果;其中,所述第一视频数据以及所述下层索引分布式存储于大数据集群,所述上层索引存储于数据查询节点。
[0201] 上述终端提到的通信总线可以是外设部件互连标准(Peripheral Component Interconnect,简称PCI)总线或扩展工业标准结构(Extended Industry Standard Architecture,简称EISA)总线等。该通信总线可以分为地址总线、数据总线、控制总线等。为便于表示,图中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
[0202] 通信接口用于上述终端与其他设备之间的通信。
[0203] 存储器可以包括随机存取存储器(Random Access Memory,简称RAM),也可以包括非易失性存储器(non‑volatile memory),例如至少一个磁盘存储器。可选的,存储器还可以是至少一个位于远离前述处理器的存储装置。
[0204] 上述的处理器可以是通用处理器,包括中央处理器(Central Processing Unit,简称CPU)、网络处理器(Network Processor,简称NP)等;还可以是数字信号处理器(Digital Signal Processing,简称DSP)、专用集成电路(Application Specific Integrated Circuit,简称ASIC)、现场可编程门阵列(Field-Programmable Gate Array,简称FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。
[0205] 在本发明提供的又一实施例中,还提供了一种计算机可读存储介质,该计算机可读存储介质中存储有指令,当其在计算机上运行时,使得计算机执行上述实施例中任一所述的视频数据存储方法,或者,上述实施例中任一所述的视频数据分析方法。
[0206] 在本发明提供的又一实施例中,还提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述实施例中任一所述的视频数据存储方法,或者,上述实施例中任一所述的视频数据分析方法。
[0207] 在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。所述计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行所述计算机程序指令时,全部或部分地产生按照本发明实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(DSL))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如,DVD)、或者半导体介质(例如固态硬盘Solid State Disk (SSD))等。
[0208] 需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
[0209] 本说明书中的各个实施例均采用相关的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于系统实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
[0210] 以上所述仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内所作的任何修改、等同替换、改进等,均包含在本发明的保护范围内。