一种流文件的查询与存储方法和装置转让专利

申请号 : CN201710161026.8

文献号 : CN106970958B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 叶美倩

申请人 : 浙江大华技术股份有限公司

摘要 :

本发明实施例涉及视频监控技术领域,尤其涉及一种流文件的查询与存储方法和装置,用于实现快速、精确的检索与待查询结构化描述关联的视频数据。获取待查询结构化描述、待查询文件标识和预设起始偏移量;确定出键值中文件标识与待查询文件标识匹配,且起始偏移量不小于预设起始偏移量的第一类节点,得到待筛选结构化描述;将与待查询结构化描述匹配的待筛选结构化描述对应的起始偏移量输出,得到待查询起始偏移量;确定出键值中的文件标识和起始偏移量与待查询文件标识和待查询起始偏移量匹配的第二类节点,得到待查询流文件名称;根据待查询流文件名称,读取其对应的流文件;进而实现快速、精确的检索与待查询结构化描述关联的视频数据。

权利要求 :

1.一种流文件的查询与存储方法,其特征在于,包括:

获取待查询结构化描述、待查询文件标识和预设起始偏移量;

从结构化描述树中确定出键值中的文件标识与所述待查询文件标识匹配,且键值中的起始偏移量不小于所述预设起始偏移量的第一类节点,并确定出相匹配的第一类节点存储的结构化描述,得到待筛选结构化描述;其中,所述第一类节点对应存储的键值包括文件标识和起始偏移量,存储的值包括结构化描述;

将所述待筛选结构化描述与所述待查询结构化描述匹配的结构化描述对应的起始偏移量输出,得到待查询起始偏移量;

从流文件树中确定出键值中的文件标识和起始偏移量与所述待查询文件标识和所述待查询起始偏移量匹配的第二类节点,并确定出相匹配的第二类节点存储的流文件名称,得到待查询流文件名称;其中,所述第二类节点对应存储的键值包括文件标识和起始偏移量,存储的值包括流文件名称;

根据所述待查询流文件名称,读取所述待查询流文件名称对应的流文件。

2.如权利要求1所述的方法,其特征在于,所述获取待查询结构化描述、待查询文件标识和预设起始偏移量,包括:获取所述待查询结构化描述、待查询目录标识和所述预设起始偏移量;

从所述流文件树中确定出键值中的目录标识与所述待查询目录标识匹配的第三类节点,并确定出相匹配的第三类节点存储的文件标识,得到所述待查询文件标识;其中,所述第三类节点对应存储的键值包括目录的标识,存储的值包括该目录中包括的文件的文件标识和文件名称。

3.如权利要求2所述的方法,其特征在于,所述得到所述待查询文件标识之后,还包括:从所述流文件树中确定出键值中的文件标识与所述待查询文件标识匹配的第四类节点,并确定出相匹配的第四类节点存储的文件属性信息,得到待查询文件属性信息;其中,所述第四类节点对应存储的键值包括文件标识,存储的值包括文件属性信息;

将所述待查询文件属性信息输出。

4.如权利要求1至3任一权利要求所述的方法,其特征在于,所述获取待查询结构化描述、待查询文件标识和预设起始偏移量,包括:获取所述待查询结构化描述、待查询目录标识、待查询文件名称和所述预设起始偏移量;

从所述流文件树中确定出键值中的目录标识与所述待查询目录标识匹配的第三类节点,并确定出相匹配的所述第三类节点中存储的值与所述待查询文件名称匹配的节点,得到所述待查询文件标识;其中,所述第三类节点对应存储的键值包括目录的标识,存储的值包括该目录中包括的文件的文件标识和文件名称。

5.如权利要求1所述的方法,其特征在于,所述获取待查询结构化描述、待查询文件标识和预设起始偏移量之前还包括:获取待写入文件的文件属性信息和所述待写入文件的目录标识;

为所述待写入文件分配文件标识,并在所述流文件树中创建第四类节点,并根据所述待写入文件的文件标识和所述待写入文件的文件属性信息为创建的第四类节点的键值和值赋值;

在所述流文件树中创建第三类节点,并根据所述待写入文件的目录标识和所述待写入文件的文件标识与文件名称为创建的第三类节点的键值和值赋值;

获取所述待写入文件的流文件名称;

根据所述待写入文件的文件标识和所述待写入文件的流文件名称,在内核中创建流文件,并将获取的视频数据写入创建的流文件中;根据所述待写入文件中在所述创建的流文件之前的所有流文件的大小,确定出创建的流文件对应的起始偏移量;

在所述流文件树中创建所述第二类节点,并根据所述待写入文件的文件标识、所述待写入文件中流文件对应的起始偏移量和所述待写入文件中的流文件名称为所述第二类节点的键值和值赋值;

获取所述待写入文件对应的结构化描述;

在所述结构化描述树中创建所述第一类节点,并根据所述待写入文件的文件标识、所述待写入文件的起始偏移量和所述待写入文件的结构化描述为所述第一类节点的键值和值赋值。

6.一种流文件的查询与存储装置,其特征在于,包括:

用户接口模块,用于获取待查询结构化描述、待查询文件标识和预设起始偏移量;

元数据管理模块,用于从结构化描述树中确定出键值中的文件标识与所述待查询文件标识匹配,且键值中的起始偏移量不小于所述预设起始偏移量的第一类节点,并确定出相匹配的第一类节点存储的结构化描述,得到待筛选结构化描述;将所述待筛选结构化描述与所述待查询结构化描述匹配的结构化描述对应的起始偏移量输出,得到待查询起始偏移量;从流文件树中确定出键值中的文件标识和起始偏移量与所述待查询文件标识和所述待查询起始偏移量匹配的第二类节点,并确定出相匹配的第二类节点存储的流文件名称,得到待查询流文件名称;其中,所述第一类节点对应存储的键值包括文件标识和起始偏移量,存储的值包括结构化描述;所述第二类节点对应存储的键值包括文件标识和起始偏移量,存储的值包括流文件名称;

流管理模块,用于根据所述待查询流文件名称,读取所述待查询流文件名称对应的流文件。

7.如权利要求6所述的装置,其特征在于,所述用户接口模块,用于:

获取所述待查询结构化描述、待查询目录标识和所述预设起始偏移量;

所述元数据管理模块,用于:

从所述流文件树中确定出键值中的目录标识与所述待查询目录标识匹配的第三类节点,并确定出相匹配的第三类节点存储的文件标识,得到所述待查询文件标识;其中,所述第三类节点对应存储的键值包括目录的标识,存储的值包括该目录中包括的文件的文件标识和文件名称。

8.如权利要求7所述的装置,其特征在于,所述元数据管理模块,还用于:从所述流文件树中确定出键值中的文件标识与所述待查询文件标识匹配的第四类节点,并确定出相匹配的第四类节点存储的文件属性信息,得到待查询文件属性信息;其中,所述第四类节点对应存储的键值包括文件标识,存储的值包括文件属性信息;

将所述待查询文件属性信息输出。

9.如权利要求6至8任一权利要求所述的装置,其特征在于,所述用户接口模块,用于:获取所述待查询结构化描述、待查询目录标识、待查询文件名称和所述预设起始偏移量;

所述元数据管理模块,用于:

从所述流文件树中确定出键值中的目录标识与所述待查询目录标识匹配的第三类节点,并确定出相匹配的所述第三类节点中存储的值与所述待查询文件名称匹配的节点,得到所述待查询文件标识;其中,所述第三类节点对应存储的键值包括目录的标识,存储的值包括该目录中包括的文件的文件标识和文件名称。

10.如权利要求6所述的装置,其特征在于,所述用户接口模块,还用于:获取待写入文件的文件属性信息、所述待写入文件的目录标识、所述待写入文件的流文件名称和所述待写入文件对应的结构化描述;

所述元数据管理模块,还用于:

为所述待写入文件分配文件标识,并在所述流文件树中创建第四类节点,并根据所述待写入文件的文件标识和所述待写入文件的文件属性信息为创建的第四类节点的键值和值赋值;

在所述流文件树中创建第三类节点,并根据所述待写入文件的目录标识和所述待写入文件的文件标识与文件名称为创建的第三类节点的键值和值赋值;

在所述流文件树中创建所述第二类节点,并根据所述待写入文件的文件标识、所述待写入文件中流文件对应的起始偏移量和所述待写入文件中的流文件名称为所述第二类节点的键值和值赋值;

在所述结构化描述树中创建所述第一类节点,并根据所述待写入文件的文件标识、所述待写入文件的起始偏移量和所述待写入文件的结构化描述为所述第一类节点的键值和值赋值;

流管理模块,还用于:

根据所述待写入文件的文件标识和所述待写入文件的流文件名称,在内核中创建流文件,并将获取的视频数据写入创建的流文件中;根据所述待写入文件中在所述创建的流文件之前的所有流文件的的大小,确定出创建的流文件对应的起始偏移量。

说明书 :

一种流文件的查询与存储方法和装置

技术领域

[0001] 本发明实施例涉及视频监控技术领域,尤其涉及一种流文件的查询与存储方法和装置。

背景技术

[0002] 在安防领域,视频监控是城市公共安全管理中智慧安防和智慧交通的重要组成部分。一般情况下,视频监控得到的海量视频数据多以时间为单位顺序排列的图像集合,属于非结构化数据,无法针对用户感兴趣的内容信息进行分类和检索,完全依赖人工浏览、排查,耗时费力、效率低下。
[0003] 现有技术中的视频数据存储时,在存储视频数据的流文件内、起始偏移之后附加文件属性块,用于保存存储视频数据的结构化描述,当用户发出查询请求时,根据视频数据和文件属性块,对视频数据或是结构化描述进行读写。这种将结构化描述保存在原文件内部的方案,由于结构化描述与视频数据一起保存在磁盘等介质而非内存中,应用到对结构化描述有大量查询请求的视频监控系统,一旦需要检索时,需要在内存中查询视频数据和结构化描述所在的文件,检索速率很慢。
[0004] 因此,亟需一种流文件的查询与存储方法,对存储的视频数据和与视频数据进行组织关联的结构化描述进行快速查询,实现快速、精确的检索到与待查询结构化描述关联的源数据。

发明内容

[0005] 本发明实施例提供一种流文件的查询与存储方法和装置,用于实现快速、精确的检索到与待查询结构化描述关联的源数据。
[0006] 本发明实施例提供了一种流文件的查询与存储方法,包括:获取待查询结构化描述、待查询文件标识和预设起始偏移量;从所述结构化描述树中确定出键值中的文件标识与所述待查询文件标识匹配,且键值中的起始偏移量不小于所述预设起始偏移量的第一类节点,并确定出相匹配的第一类节点存储的结构化描述,得到待筛选结构化描述;其中,所述第一类节点对应存储的键值包括文件标识和起始偏移量,存储的值包括结构化描述;将所述待筛选结构化描述与所述待查询结构化描述匹配的结构化描述对应的起始偏移量输出,得到待查询起始偏移量;从所述流文件树中确定出键值中的文件标识和起始偏移量与所述待查询文件标识和所述待查询起始偏移量匹配的第二类节点,并确定出相匹配的第二类节点存储的流文件名称,得到待查询流文件名称;其中,所述第二类节点对应存储的键值包括文件标识和起始偏移量,存储的值包括流文件名称;根据所述待查询流文件名称,读取所述待查询流文件名称对应的流文件。
[0007] 可选地,所述获取待查询结构化描述、待查询文件标识和预设起始偏移量,包括:获取所述待查询结构化描述、待查询目录标识和所述预设起始偏移量;从所述流文件树中确定出键值中的目录标识与所述待查询目录标识匹配的第三类节点,并确定出相匹配的第三类节点存储的文件标识,得到所述待查询文件标识;其中,所述第三类节点对应存储的键值包括目录的标识,存储的值包括该目录中包括的文件的文件标识和文件名称。
[0008] 可选地,所述得到所述待查询文件标识之后,还包括:从所述流文件树中确定出键值中的文件标识与所述待查询文件标识匹配的第四类节点,并确定出相匹配的第四类节点存储的文件属性信息,得到待查询文件属性信息;其中,所述第四类节点对应存储的键值包括文件标识,存储的值包括文件属性信息;将所述待查询文件属性信息输出。
[0009] 可选地,所述获取待查询结构化描述、待查询文件标识和预设起始偏移量,包括:获取所述待查询结构化描述、待查询目录标识、待查询文件名称和所述预设起始偏移量;从所述流文件树中确定出键值中的目录标识与所述待查询目录标识匹配的第三类节点,并确定出相匹配的所述第三类节点中存储的值与所述待查询文件名称匹配的节点,得到所述待查询文件标识;其中,所述第三类节点对应存储的键值包括目录的标识,存储的值包括该目录中包括的文件的文件标识和文件名称。
[0010] 可选地,所述获取待查询结构化描述、待查询文件标识和预设起始偏移量之前还包括:获取待写入文件的文件属性信息和所述待写入文件的目录标识;为所述待写入文件分配文件标识,并在所述流文件树中创建所述第四类节点,并根据所述待写入文件的文件标识和所述待写入文件的文件属性信息为创建的第四类节点的键值和值赋值;在所述流文件树中创建所述第三类节点,并根据所述待写入文件的目录标识和所述待写入文件的文件标识与文件名称为创建的第三类节点的键值和值赋值;获取所述待写入文件的流文件名称;根据所述待写入文件的文件标识和所述待写入文件的流文件名称,在内核中创建流文件,并将获取的视频数据写入创建的流文件中;根据所述待写入文件中在所述创建的流文件之前的所有流文件的大小,确定出创建的流文件对应的起始偏移量;在所述流文件树中创建所述第二类节点,并根据所述待写入文件的文件标识、所述待写入文件中流文件对应的起始偏移量和所述待写入文件中的流文件名称为所述第二类节点的键值和值赋值;获取所述待写入文件对应的结构化描述;在所述结构化描述树中创建所述第一类节点,并根据所述待写入文件的文件标识、所述待写入文件的起始偏移量和所述待写入文件的结构化描述为所述第一类节点的键值和值赋值。
[0011] 本发明实施例提供一种流文件的查询与存储装置,包括:
[0012] 用户接口模块,用于获取待查询结构化描述、待查询文件标识和预设起始偏移量;
[0013] 元数据管理模块,用于从所述结构化描述树中确定出键值中的文件标识与所述待查询文件标识匹配,且键值中的起始偏移量不小于所述预设起始偏移量的第一类节点,并确定出相匹配的第一类节点存储的结构化描述,得到待筛选结构化描述;将所述待筛选结构化描述与所述待查询结构化描述匹配的结构化描述对应的起始偏移量输出,得到待查询起始偏移量;从所述流文件树中确定出键值中的文件标识和起始偏移量与所述待查询文件标识和所述待查询起始偏移量匹配的第二类节点,并确定出相匹配的第二类节点存储的流文件名称,得到待查询流文件名称;其中,所述第一类节点对应存储的键值包括文件标识和起始偏移量,存储的值包括结构化描述;所述第二类节点对应存储的键值包括文件标识和起始偏移量,存储的值包括流文件名称;
[0014] 流管理模块,用于根据所述待查询流文件名称,读取所述待查询流文件名称对应的流文件。
[0015] 可选地,所述用户接口模块,用于:获取所述待查询结构化描述、待查询目录标识和所述预设起始偏移量;元数据管理模块,用于:从所述流文件树中确定出键值中的目录标识与所述待查询目录标识匹配的第三类节点,并确定出相匹配的第三类节点存储的文件标识,得到所述待查询文件标识;其中,所述第三类节点对应存储的键值包括目录的标识,存储的值包括该目录中包括的文件的文件标识和文件名称。
[0016] 可选地,所述元数据管理模块,还用于:从所述流文件树中确定出键值中的文件标识与所述待查询文件标识匹配的第四类节点,并确定出相匹配的第四类节点存储的文件属性信息,得到待查询文件属性信息;其中,所述第四类节点对应存储的键值包括文件标识,存储的值包括文件属性信息;将所述待查询文件属性信息输出。
[0017] 可选地,所述用户接口模块,用于:获取所述待查询结构化描述、待查询目录标识、待查询文件名称和所述预设起始偏移量;所述元数据管理模块,用于:从所述流文件树中确定出键值中的目录标识与所述待查询目录标识匹配的第三类节点,并确定出相匹配的所述第三类节点中存储的值与所述待查询文件名称匹配的节点,得到所述待查询文件标识;其中,所述第三类节点对应存储的键值包括目录的标识,存储的值包括该目录中包括的文件的文件标识和文件名称。
[0018] 可选地,所述用户接口模块,还用于:获取待写入文件的文件属性信息、所述待写入文件的目录标识、所述待写入文件的流文件名称和所述待写入文件对应的结构化描述;所述元数据管理模块,还用于:为所述待写入文件分配文件标识,并在所述流文件树中创建所述第四类节点,并根据所述待写入文件的文件标识和所述待写入文件的文件属性信息为创建的第四类节点的键值和值赋值;在所述流文件树中创建所述第三类节点,并根据所述待写入文件的目录标识和所述待写入文件的文件标识与文件名称为创建的第三类节点的键值和值赋值;在所述流文件树中创建所述第二类节点,并根据所述待写入文件的文件标识、所述待写入文件中流文件对应的起始偏移量和所述待写入文件中的流文件名称为所述第二类节点的键值和值赋值;在所述结构化描述树中创建所述第一类节点,并根据所述待写入文件的文件标识、所述待写入文件的起始偏移量和所述待写入文件的结构化描述为所述第一类节点的键值和值赋值;流管理模块,还用于:根据所述待写入文件的文件标识和所述待写入文件的流文件名称,在内核中创建流文件,并将获取的视频数据写入创建的流文件中;根据所述待写入文件中在所述创建的流文件之前的所有流文件的的大小,确定出创建的流文件对应的起始偏移量。
[0019] 本发明实施例中,获取待查询结构化描述、待查询文件标识和预设起始偏移量;由于从结构化描述树中确定出键值中的文件标识与待查询文件标识匹配,且键值中的起始偏移量不小于预设起始偏移量的第一类节点,并确定出相匹配的第一类节点存储的结构化描述,得到待筛选结构化描述;将待筛选结构化描述与待查询结构化描述匹配的结构化描述对应的起始偏移量输出,得到待查询起始偏移量;从流文件树中确定出键值中的文件标识和起始偏移量与待查询文件标识和待查询起始偏移量匹配的第二类节点,并确定出相匹配的第二类节点存储的流文件名称,得到待查询流文件名称;也就是说,本发明实施例中,只根据待查询结构化描述快速查询结构化描述树,而不需要像现有技术中查询视频数据所在的文件,就可以查询到结构化描述所对应的流文件名称,从而根据待查询流文件名称,读取待查询流文件名称对应的流文件,实现快速、精确的检索到与待查询结构化描述关联的视频数据。

附图说明

[0020] 为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简要介绍。
[0021] 图1为本发明实施例提供的一种流文件的查询与存储系统架构示意图;
[0022] 图2为本发明实施例提供的一种流文件的查询与存储方法流程示意图;
[0023] 图3为本发明实施例提供的一种根据待查询目录标识查询视频数据的方法流程示意图;
[0024] 图4为本发明实施例提供的一种根据待查询文件名称查询视频数据的方法流程示意图;
[0025] 图5为本发明实施例提供的一种流文件树示意图;
[0026] 图6为本发明实施例提供的一种结构化描述树示意图;
[0027] 图7为本发明实施例提供的一种存储视频数据的方法流程示意图;
[0028] 图8为本发明实施例提供的一种流文件的查询与存储装置结构示意图。

具体实施方式

[0029] 为了使本发明的目的、技术方案及有益效果更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本发明,并不用于限定本发明。
[0030] 图1示例性示出了本发明实施例适用的一种流文件的查询与存储系统架构示意图,如图1所示,该流文件的查询与存储系统架构100包括用户态110、内核态120和设置于用户态110中的流文件的查询与存储装置130;其中,流文件的查询与存储装置130包括用户接口模块131、元数据管理模块132和流管理模块133。
[0031] 本发明实施例中,用户接口模块131提供系统对外应用程序编程接口(Application Programming Interface,简称API),以使用户可以方便的操作本系统。
[0032] 元数据管理模块132用于负责系统内所有文件和目录结构关系、视频数据位置信息、结构化描述与视频数据关联关系等系统元数据的管理,元数据管理模块132主要通过在用户态构建两棵B+树,分别为流文件树和结构化描述树,实现对元数据的管理;其中,流文件树用于关联文件、起始偏移量和视频数据信息;结构化描述树用于管理文件、起始偏移量、结构化描述的关系。本发明实施例中,流文件树和结构化描述树的树内节点信息采用checkpoint+log的方式存储在内核态120中,其中,以checkpoint文件的形式保存树的节点信息,以log文件保存对树节点的操作记录。每一棵树都包括多个节点,每一个节点上的信息由存储的键值和存储的值组成一个键值对,在对节点上存储的信息进行查询时,可通过一个节点上存储的键值,查询到该节点上存储的值。
[0033] 流管理模块133将所有视频数据,以流文件的形式存储在内核态120中的底层文件系统(如linux支持的ext4或xfs文件格式)进行管理,执行对视频数据的存储、访问等操作。
[0034] 本发明实施例中,一个文件可以由1个或多个流文件组成;流文件的大小是不固定的,它可以是一张或几张图像、一段视频、一段音频。将流文件保存到非易失性存储介质,在需要写入或读取其中的视频数据时进行访问。
[0035] 图2示例性示出了本发明实施例提供的一种流文件的查询与存储方法流程示意图。
[0036] 基于图1所示的系统架构,如图2所示,本发明实施例提供的一种流文件的查询与存储方法,包括以下步骤:
[0037] 步骤S201:获取待查询结构化描述、待查询文件标识和预设起始偏移量;
[0038] 步骤S202:从结构化描述树中确定出键值中的文件标识与待查询文件标识匹配,且键值中的起始偏移量不小于预设起始偏移量的第一类节点,并确定出相匹配的第一类节点存储的结构化描述,得到待筛选结构化描述;其中,第一类节点对应存储的键值包括文件标识和起始偏移量,存储的值包括结构化描述;
[0039] 步骤S203:将待筛选结构化描述与待查询结构化描述匹配的结构化描述对应的起始偏移量输出,得到待查询起始偏移量;
[0040] 步骤S204:从流文件树中确定出键值中的文件标识和起始偏移量与待查询文件标识和待查询起始偏移量匹配的第二类节点,并确定出相匹配的第二类节点存储的流文件名称,得到待查询流文件名称;其中,第二类节点对应存储的键值包括文件标识和起始偏移量,存储的值包括流文件名称;
[0041] 步骤S205:根据待查询流文件名称,读取待查询流文件名称对应的流文件。
[0042] 基于上述实施例,在步骤S201中,结构化描述可以为流文件存储的视频数据中提取的多个特征,比如人、车等,每个流文件可以包含0个、1个或多个结构化描述。待查询文件标识的获取方式有多种,可以通过用户接口模块直接获取用户输入的文件标识,也可以根据待查询目录标识查询流文件树中节点存储的信息得到,还可以根据待查询文件名称查询流文件树中节点存储的信息得到。
[0043] 本发明实施例中,一个文件可以由一个或多个流文件组成,文件中的第一个流文件的预设起始偏移量表示为off_0=0,后续每一个流文件的预设起始偏移量是前一个流文件的预设起始偏移量加前一个流文件的大小;举个例子,一个文件中存储了四个流文件,四个流文件的大小分别为:流文件一的大小为20字节、流文件二的大小为40字节、流文件三的大小为20字节、流文件四的大小为25字节,流文件一的预设起始偏移量为0,那么流文件二的预设起始偏移量为20字节,流文件三的预设起始偏移量为60字节,流文件四的预设起始偏移量为80字节。
[0044] 基于上述实施例,在步骤S202中,结构化描述树中,第一类节点可包括一个节点,也可包括多个节点,第一类节点中的每个节点存储的键值包括文件标识和起始偏移量、存储的值包括结构化描述。
[0045] 举个例子,例如待查询结构化描述为汽车,待查询文件标识为file 5,预设起始偏移量为40字节,则从第一类节点中查询存储的键值为:文件标识file 5、起始偏移量不小于40字节的所有节点,例如满足上述查询条件的节点为节点3、节点4、节点5和节点6,其中,节点3存储的键值为:file 5和45字节、存储的值为汽车,节点4存储的键值为:file 5和48字节、存储的值为人,节点5存储的键值为:file 5和50字节、存储的值为汽车,节点6存储的键值为:file 5和84字节、存储的值为松树;那么,得到的待筛选结构化描述分别为节点3中的汽车、节点4中的人,节点5中的汽车、节点6中的松树。
[0046] 基于上述实施例,在步骤S203中,上述节点3、节点4、节点5和节点6中与待查询结构化描述汽车匹配的节点有:节点3和节点5。上述节点3和节点5中对应的存储的起始偏移量分别为45字节和50字节,将起始偏移量45字节和50字节作为待查询起始偏移量。
[0047] 基于上述实施例,在步骤S204中,在流文件树中,确定出文件标识file 5、起始偏移量为45字节的第二类节点存储的流文件名称、以及文件标识file 5、起始偏移量为50字节的第二类节点存储的流文件名称,作为待查询流文件名称。
[0048] 基于上述实施例,在步骤S205中,需要说明的是流管理模块无法根据文件标识和起始偏移量直接在内核态读取流文件,只能根据流文件名称读取该流文件名称对应的流文件;也就是说,在需要查询写入到流文件中的视频数据时,必须先查询到流文件名称,以使流管理模块根据流文件名称读取相应的流文件中的视频数据。
[0049] 由于从结构化描述树中确定出键值中的文件标识与待查询文件标识匹配,且键值中的起始偏移量不小于预设起始偏移量的第一类节点,并确定出相匹配的第一类节点存储的结构化描述,得到待筛选结构化描述;将待筛选结构化描述与待查询结构化描述匹配的结构化描述对应的起始偏移量输出,得到待查询起始偏移量;从流文件树中确定出键值中的文件标识和起始偏移量与待查询文件标识和待查询起始偏移量匹配的第二类节点,并确定出相匹配的第二类节点存储的流文件名称;也就是说,本发明实施例中,根据待查询结构化描述快速查询结构化描述树,而不需要像现有技术中查询视频数据所在的文件,就可以查询到结构化描述所对应的流文件名称,得到待查询流文件名称,从而根据待查询流文件名称,读取待查询流文件名称对应的流文件,实现快速、精确的检索到与待查询结构化描述关联的视频数据。
[0050] 本发明实施例中,不同结构化描述的多个视频数据写入到多个流文件中,存入同一个文件,对每个流文件赋予不同的起始偏移量;当需要在待查询文件标识对应的文件中,查询待查询结构化描述对应的视频数据时,可以根据文件标识和视频数据在文件内的起始偏移量,精确的定位到每个视频数据。当不知道文件标识时,可在获取待查询目录标识的情况下,通过在流文件树中查询与待查询目录标识匹配的节点信息,获取文件标识;进而定位到待查询结构化描述对应的视频数据。
[0051] 可选地,所述获取待查询结构化描述、待查询文件标识和预设起始偏移量,包括:获取所述待查询结构化描述、待查询目录标识和所述预设起始偏移量;从所述流文件树中确定出键值中的目录标识与所述待查询目录标识匹配的第三类节点,并确定出相匹配的第三类节点存储的文件标识,得到所述待查询文件标识;其中,所述第三类节点对应存储的键值包括目录的标识,存储的值包括该目录中包括文件的文件标识和文件名称。
[0052] 举个例子,目录的标识为dir_id,该目录中包括的文件有三个文件,这三个文件的文件名称为:文件甲、文件乙和文件丙,分别对应的文件标识为:fid1、fid2和fid;那么,该第三类节点中包括的节点为:第三类节点1、第三类节点2、第三类节点3;其中第三类节点1上存储的键值为dir_id、存储的值为fid1和文件甲;第三类节点2上存储的键值为dir_id、存储的值为fid2和文件乙;第三类节点3上存储的键值为dir_id、存储的值为fid3和文件丙。本例中,若待查询目录标识为dir_id,从流文件树中确定出键值中的目录标识与述待查询目录标识dir_id一致的第三类节点1、第三类节点2和第三类节点3,得到的文件标识有fid1、fid2和fid3;也就是说,当知晓待查询目录标识时,可以确定至少一个第三类节点存储的文件标识。可选地,当知晓待查询目录标识时,还可以确定与至少一个第三类节点存储的文件标识对应的文件名称。
[0053] 为了更清楚的介绍如何根据待查询目录标识查询视频数据,本发明实施例提供以下示例。
[0054] 图3示例性示出了本发明实施例提供的一种根据待查询目录标识查询视频数据的方法流程示意图。例如,待查询目录标识为dir_id,当前起始偏移量用cur_offset表示。基于图1所示的系统架构,如图3所示,该方法包括以下步骤:
[0055] 步骤S301:用户接口模块获取待查询目录dir_id;
[0056] 步骤S302:用户接口模块向元数据管理模块发送待查询目录dir_id;
[0057] 步骤S303:元数据管理模块在流文件树中查询待查询目录dir_id下的第一个文件;
[0058] 步骤S304:元数据管理模块向用户接口模块返回查询到的文件的文件标识fid;
[0059] 步骤S305:用户接口模块将接收到的文件标识fid作为当前文件标识cur_fid,当前起始偏移量cur_offset初始化为0;
[0060] 步骤S306:用户接口模块向元数据管理模块发送当前文件标识cur_fid和当前起始偏移量cur_offset;
[0061] 步骤S307:元数据管理模块将当前文件标识cur_fid作为待查询当前文件标识search_fid、将当前起始偏移量cur_offset作为待查询起始偏移量search_offSet,在结构化描述树中查询search_fid在search_offset对应的结构化描述;
[0062] 步骤S308:元数据管理模块是否查询到待查询结构化描述,若是,则执行步骤S312;若否,则执行步骤S309;
[0063] 步骤S309:待查询目录下的所有文件是否查询完毕;若是,则执行步骤S312;若否,则执行步骤S310;
[0064] 步骤S310:元数据管理模块在流文件树查询search_fid的下一个流文件的起始偏移量,作为search_offset;如果search_fid没有下一个偏移,则查询目录下的下一个文件对应的文件标识作为search_fid,search_off置0;
[0065] 步骤S311:元数据管理模块在流文件树查找待查询目录dir_id中cur_fid的下一个文件对应的fid;继续执行步骤S304至步骤S308;
[0066] 步骤S312:元数据管理模块向用户接口模块返回文件标识和起始偏移量,或,返回未查询到结构化描述;
[0067] 步骤S313:根据返回的文件标识及起始偏移量查询视频数据;或,在返回未查询到结构化描述的情况下,结束查询视频数据。
[0068] 本发明实施例中,由于流文件树中的第三类节点对应存储的键值包括目录的标识,存储的值包括该目录中包括的文件标识,根据待查询目录标识查询流文件树中的第三类节点信息,可快速的获得待查询文件标识;并根据待查询文件标识和待查询起始偏移量查询流文件树中的第二类节点存储的信息,进而确定流文件名称,精确的查询到待查询流文件名称对应的流文件。而现有技术中,在获取待查询目录标识的情况下,需要在数据库中查询待查询目录标识对应的每一个文件中的结构化描述,并不能快速查询到待查询文件标识。而且本发明实施例查询流文件名称的过程不依赖数据库、且不需要打开存储视频数据的流文件,只需要在用户态进行查询流文件树,避免了因数据库操作复杂而增加系统复杂度问题。
[0069] 可选地,所述得到所述待查询文件标识之后,还包括:从所述流文件树中确定出键值中的文件标识与所述待查询文件标识匹配的第四类节点,并确定出相匹配的第四类节点存储的文件属性信息,得到待查询文件属性信息;其中,所述第四类节点对应存储的键值包括文件标识,存储的值包括文件属性信息;将所述待查询文件属性信息输出。
[0070] 本发明实施例中,文件属性信息包括:文件的名称、文件创建的时间、文件长度和文件修改时间等。在获取待查询目录标识之后,通过查询流文件树得到文件属性信息;如此,一方面,满足了用户根据目录标识查询文件属性信息的需求;另一方面,查询文件属性信息的过程不依赖数据库、且不需要打开存储视频数据的流文件,只需要在用户态进行查询流文件树,避免了因数据库操作复杂而增加系统复杂度问题。
[0071] 本发明实施例中,当不知道文件标识时,可在获取待查询目录标识和待查询文件名称的情况下,通过在流文件树中查询与待查询文件名称匹配的节点信息,获取与待查询文件名称唯一对应的文件标识;进而精确定位到待查询结构化描述对应的视频数据。
[0072] 可选地,所述获取待查询结构化描述、待查询文件标识和预设起始偏移量,包括:获取所述待查询结构化描述、待查询目录标识、待查询文件名称和所述预设起始偏移量;从所述流文件树中确定出键值中的目录标识与所述待查询目录标识匹配的第三类节点,并确定出相匹配的所述第三类节点中存储的值与所述待查询文件名称匹配的节点,得到所述待查询文件标识;其中,所述第三类节点对应存储的键值包括目录的标识,存储的值包括该目录中包括的文件的文件标识和文件名称。
[0073] 举个例子,目录的标识为dir_id对应的目录中包括三个文件,文件名称分别为:文件甲、文件乙和文件丙,分别对应的文件标识为:fid1、fid2和fid3;那么,流文件树中第三类节点中包括的节点为:第三类节点1存储的键值为dir_id、存储的值为fid1和文件甲;第三类节点2存储的键值为dir_id、存储的值为fid2和文件乙;第三类节点3存储的键值为dir_id、存储的值为fid3和文件丙。本发明实施例中,若待查询目录标识为dir_id,待查询文件名称为文件丙;
[0074] 从流文件树中确定出键值中的目录标识与述待查询目录标识dir_id一致的第三类节点1、第三类节点2和第三类节点3,这三个节点中存储的值与文件丙匹配的节点为第三类节点3,此时可以唯一确定一个文件标识fid3;也就是说,当知晓待查询目录标识和待查询文件名称时,可以确定唯一一个第三类节点存储的文件标识。
[0075] 为了更清楚的介绍如何根据待查询文件名称查询视频数据,本发明实施例提供以下示例。
[0076] 图4示例性示出了本发明实施例提供的一种根据待查询文件名称查询视频数据的方法流程示意图。基于图1所示的系统架构,如图4所示,该方法包括以下步骤:
[0077] 步骤S401:用户接口模块获取待查询目录标识dir_id和待查询文件名称;
[0078] 步骤S402:用户接口模块向元数据管理模块发送待查询目录标识dir_id和待查询文件名称;
[0079] 步骤S403:元数据管理模块在流文件树中查询存储的键值中的目录标识与待查询目录标识dir_id匹配、且存储的值中的文件名称与待查询文件名称匹配的第三类节点,将该节点中的存储的值中的文件标识作为待查询文件标识;
[0080] 步骤S404:元数据管理模块查询存储的键值为待查询文件标识和预设起始偏移量的第二类节点,并确定该节点存储的值流文件名称stream_name;
[0081] 步骤S405:元数据管理模块将流文件名称stream_name返回至用户接口模块;
[0082] 步骤S406:用户接口模块向流管理模块发送读取流文件名称stream_name对应的流文件的请求;
[0083] 步骤S407:流管理模块打开内核态中流文件名称stream_name对应的流文件;
[0084] 步骤S408:流管理模块向用户接口模块返回文件句柄,该文件句柄用于打开流文件名称stream_name对应的流文件;
[0085] 步骤S409:用户接口模块向流管理模块发送读取stream_name对应的流文件中的视频数据请求;
[0086] 步骤S410:流管理模块从流文件名为stream_name的流文件中读取视频数据;
[0087] 步骤S411:流管理模块向用户接口模块返回视频数据;
[0088] 步骤S412:用户接口模块读取视频数据。
[0089] 本发明实施例中,由于流文件树中的第三类节点对应存储的键值包括目录标识,存储的值包括文件标识和文件名称,根据待查询目录标识和待查询文件名称查询流文件树中的第三类节点信息,可快速获得待查询文件标识;并根据待查询文件标识和待查询起始偏移量查询流文件树中的第二类节点存储的信息,进而确定流文件名称,精确的查询到待查询流文件名称对应的流文件。而且本发明实施例查询流文件名称的过程不依赖数据库、且不需要打开存储视频数据的流文件,只需要在用户态进行查询流文件树,避免了因数据库操作复杂而增加系统复杂度问题。
[0090] 本发明实施例中,在通过流文件树和结构化描述树查询视频数据之前,还包括流文件树和结构化描述树的创建,其中,流文件树中包括第四类节点、第三类节点和第二类节点;结构化描述树包括第一类节点,将同一视频关联的多个结构化描述设计为各自独立而相连的多个节点,可以支持结构化描述的增加、删除,也支持检索条件采用任意结构化描述的组合。流文件树和结构化描述树可以分开保存,结构化描述树中的节点信息数据量大,同时保存不频繁,可以保存于硬盘中;由于流文件树节点信息小,可以保存在内存中,并定期存入硬盘,如此,便于管理流文件树和结构化描述树的信息。
[0091] 可选地,所述获取待查询结构化描述、待查询文件标识和预设起始偏移量之前还包括:
[0092] 第四类节点的创建过程:获取待写入文件的文件属性信息和所述待写入文件的目录标识;为所述待写入文件分配文件标识,并在所述流文件树中创建所述第四类节点,并根据所述待写入文件的文件标识和所述待写入文件的文件属性信息为创建的第四类节点的键值和值赋值;本发明实施例中,在获取文件标识的情况下,可通过查询流文件树中的第四类节点存储的信息,快速的查询到该文件标识对应的文件属性信息。
[0093] 第三类节点的创建过程:在所述流文件树中创建所述第三类节点,并根据所述待写入文件的目录标识和所述待写入文件的文件标识与文件名称为创建的第三类节点的键值和值赋值;本发明实施例中,在获取目录标识的情况下,可通过查询流文件树中的第三类节点存储的信息,快速的查询到该目录中的所有文件的文件标识;在获取目录标识和文件名称的情况下,可通过查询流文件树中的第三类节点存储的信息,快速的查询到该目录下中文件名称对应的唯一的文件标识。
[0094] 第二类节点的创建过程:获取所述待写入文件的流文件名称;根据所述待写入文件的文件标识和所述待写入文件的流文件名称,在内核中创建流文件,并将获取的视频数据写入创建的流文件中;根据待写入文件中在所述创建的流文件之前的所有流文件的大小,确定出创建的流文件对应的起始偏移量;在所述流文件树中创建所述第二类节点,并根据所述待写入文件的文件标识、所述待写入文件中流文件对应的起始偏移量和所述待写入文件中的流文件名称为所述第二类节点的键值和值赋值;本发明实施例中,在获取文件标识和起始偏移量的情况下,可通过查询流文件树中的第二类节点存储的信息,快速的查询到该流文件名称,进而精确的查询到该流文件名称对应的流文件。
[0095] 第一类节点的创建过程:获取所述待写入文件对应的结构化描述;在所述结构化描述树中创建所述第一类节点,并根据所述待写入文件的文件标识、所述待写入文件的起始偏移量和所述待写入文件的结构化描述为所述第一类节点的键值和值赋值。本发明实施例中,一方面,在获取文件标识和起始偏移量的情况下,可通过查询结构化描述树中的第二类节点存储的信息,快速的查询到文件标识和起始偏移量对应的流文件的结构化描述;另一方面,在需要查询待查询结构化描述对应的流文件时,可通过查询结构化描述树中的第一类节点存储的信息,得到与待查询结构化描述匹配的流文件的文件标识和起始偏移量;如此,每个结构化描述以独立的节点管理,可以方便的增加或减少视频关联的结构化描述,满足易扩展性的需求。
[0096] 为了更清楚的介绍流文件树和结构化描述树,举如下示例:
[0097] 图5示例性示出了本发明实施例提供的一种流文件树示意图。如图5所示,流文件树500包括根节点501、第二类节点502、第三类节点503和第四类节点504;其中,第二类节点502、第三类节点503和第四类节点504中的每一类节点可包括多个节点;第二类节点502存储的键值为:文件标识和流文件在文件标识对应的文件中的起始偏移量,存储的值为:流文件名称;第三类节点503存储的键值为:目录标识,存储的值为:文件标识和文件名称;第四类节点504存储的键值为:文件标识,存储的值为:文件属性信息。
[0098] 图6示例性示出了本发明实施例提供的一种结构化描述树示意图。结构化描述树包括根节点和多个第一类节点;其中,第一类节点上存储的节点信息为:以文件标识和流文件在该文件标识对应的文件中的起始偏移量为键值,以流文件包含的所有结构化描述为值;如图6所示,结构化描述树600包括根节点601、第一类节点602、第一类节点603和第一类节点604;其中,第一类节点602存储的键值为:文件标识fid1和起始偏移量20字节,存储的值为:结构化描述汽车;第一类节点603存储的键值为:文件标识fid1和起始偏移量40字节,存储的值为:结构化描述人;第一类节点604存储的键值为:文件标识fid2和起始偏移量25字节,存储的值为:结构化描述自行车。
[0099] 本发明实施例中,结构化描述可以保存任意格式,可以满足视频的结构化描述多样性、可变性的需求。同时,结构化描述可以以树的形式加载到内存中访问,使得对结构化描述的检索可以快速执行,适用于对结构化描述关联视频有大量查询请求的系统。
[0100] 为了更清楚的介绍存储视频数据的过程,本发明实施例提供以下示例。
[0101] 图7示例性示出了本发明实施例提供的一种存储视频数据的方法流程示意图。如图7所示,该方法包括以下步骤:
[0102] 步骤S701:用户接口模块获取需要创建的文件路径;其中,文件路径包括目录和待写入文件名称;
[0103] 步骤S702:用户接口模块向元数据管理模块发送目录及待写入文件名称;
[0104] 步骤S703:元数据管理模块在流文件树中创建第三类节点,以待写入文件的目录标识为键值、待写入文件标识fid和待写入文件名称为值;
[0105] 步骤S704:用户接口模块向元数据管理模块发送待写入文件写入视频数据及结构化描述;
[0106] 步骤S705:元数据管理模块为视频数据生成流ID;
[0107] 步骤S706:元数据管理模块向流管理模块发送待写入文件标识fid和流ID;
[0108] 步骤S707:流管理模块在内核态以fid和流ID命名,创建流文件;
[0109] 步骤S708:流管理模块向返回流文件创建成功;
[0110] 步骤S709:元数据管理模块向流管理模块发送将视频数据写入流文件请求;
[0111] 步骤S710:流管理模块向内核态中的流文件中写入视频数据;
[0112] 步骤S711:流管理模块元数据管理模块返回写入成功;
[0113] 步骤S712:元数据管理模块在流文件树中创建第二类节点,以待写入文件的文件标识、所述待写入文件中流文件对应的起始偏移量为键值、以待写入文件中的流文件名称为值;
[0114] 步骤S713:元数据管理模块在结构化描述树中创建第一类节点,以待写入文件的文件标识、所述待写入文件中流文件对应的起始偏移量为键值、以结构化描述为值;
[0115] 步骤S714:元数据管理模块向用户接口模块返回写入成功。
[0116] 本发明实施例中,将视频数据写入到流文件中,存入底层文件系统,充分利用存储空间,不需要建立庞大的数据库,也不会产生由于提前分配大块空文件导致的空间浪费问题。
[0117] 从上述内容可以看出:本发明实施例中使用树状结构对视频数据与其结构化描述间的关联关系进行管理,视频数据存储在底层文件系统中,与视频数据相关联的结构化描述和流文件信息存入创建的结构化描述树和流文件树中,根据待查询结构化描述快速查询结构化描述树,而不需要像现有技术中查询视频数据所在的文件,就可以查询到结构化描述所对应的流文件名称,从而根据待查询流文件名称,读取待查询流文件名称对应的流文件,避免了因数据库操作复杂而增加系统复杂度问题,实现乐快速、精确的检索到与待查询结构化描述关联的视频数据。而且,每个结构化描述以独立的节点管理,可以方便的增加或减少视频关联的结构化描述,满足易扩展性的需求。进一步,结构化描述可以以树的形式加载到内存中访问,使得对结构化描述的检索可以快速执行,本发明实施例中,结构化描述树和流文件树分开保存,充分利用存储空间,不需要建立庞大的数据库,也不会产生由于提前分配大块空文件导致的空间浪费问题。
[0118] 图8示例性示出了本发明实施例提供的一种流文件的查询与存储装置的结构示意图。
[0119] 基于相同构思,本发明实施例提供的一种流文件的查询与存储装置,用于执行上述方法流程,如图8所示,该流文件的查询与存储装置800包括用户接口模块801、元数据管理模块802、流管理模块803;其中:
[0120] 用户接口模块801,用于获取待查询结构化描述、待查询文件标识和预设起始偏移量;
[0121] 元数据管理模块802,用于从所述结构化描述树中确定出键值中的文件标识与所述待查询文件标识匹配,且键值中的起始偏移量不小于所述预设起始偏移量的第一类节点,并确定出相匹配的第一类节点存储的结构化描述,得到待筛选结构化描述;将所述待筛选结构化描述与所述待查询结构化描述匹配的结构化描述对应的起始偏移量输出,得到待查询起始偏移量;从所述流文件树中确定出键值中的文件标识和起始偏移量与所述待查询文件标识和所述待查询起始偏移量匹配的第二类节点,并确定出相匹配的第二类节点存储的流文件名称,得到待查询流文件名称;其中,所述第一类节点对应存储的键值包括文件标识和起始偏移量,存储的值包括结构化描述;所述第二类节点对应存储的键值包括文件标识和起始偏移量,存储的值包括流文件名称;
[0122] 流管理模块803,用于根据所述待查询流文件名称,读取所述待查询流文件名称对应的流文件。
[0123] 可选地,所述用户接口模块801,用于:获取所述待查询结构化描述、待查询目录标识和所述预设起始偏移量;元数据管理模块802,用于:从所述流文件树中确定出键值中的目录标识与所述待查询目录标识匹配的第三类节点,并确定出相匹配的第三类节点存储的文件标识,得到所述待查询文件标识;其中,所述第三类节点对应存储的键值包括目录的标识,存储的值包括该目录中包括的文件的文件标识和文件名称。
[0124] 可选地,所述元数据管理模块802,还用于:从所述流文件树中确定出键值中的文件标识与所述待查询文件标识匹配的第四类节点,并确定出相匹配的第四类节点存储的文件属性信息,得到待查询文件属性信息;其中,所述第四类节点对应存储的键值包括文件标识,存储的值包括文件属性信息;将所述待查询文件属性信息输出。
[0125] 可选地,所述用户接口模块801,用于:获取所述待查询结构化描述、待查询目录标识、待查询文件名称和所述预设起始偏移量;所述元数据管理模块802,用于:从所述流文件树中确定出键值中的目录标识与所述待查询目录标识匹配的第三类节点,并确定出相匹配的所述第三类节点中存储的值与所述待查询文件名称匹配的节点,得到所述待查询文件标识;其中,所述第三类节点对应存储的键值包括目录的标识,存储的值包括该目录中包括的文件的文件标识和文件名称。
[0126] 可选地,所述用户接口模块801,还用于:获取待写入文件的文件属性信息、所述待写入文件的目录标识、所述待写入文件的流文件名称和所述待写入文件对应的结构化描述;所述元数据管理模块802,还用于:为所述待写入文件分配文件标识,并在所述流文件树中创建所述第四类节点,并根据所述待写入文件的文件标识和所述待写入文件的文件属性信息为创建的第四类节点的键值和值赋值;在所述流文件树中创建所述第三类节点,并根据所述待写入文件的目录标识和所述待写入文件的文件标识与文件名称为创建的第三类节点的键值和值赋值;在所述流文件树中创建所述第二类节点,并根据所述待写入文件的文件标识、所述待写入文件中流文件对应的起始偏移量和所述待写入文件中的流文件名称为所述第二类节点的键值和值赋值;在所述结构化描述树中创建所述第一类节点,并根据所述待写入文件的文件标识、所述待写入文件的起始偏移量和所述待写入文件的结构化描述为所述第一类节点的键值和值赋值;流管理模块803,还用于:根据所述待写入文件的文件标识和所述待写入文件的流文件名称,在内核中创建流文件,并将获取的视频数据写入创建的流文件中;根据所述待写入文件中在所述创建的流文件之前的所有流文件的的大小,确定出创建的流文件对应的起始偏移量。
[0127] 从上述内容可以看出:本发明实施例中使用树状结构对视频数据与其结构化描述间的关联关系进行管理,视频数据存储在底层文件系统中,与视频数据相关联的结构化描述和流文件信息存入创建的结构化描述树和流文件树中,根据待查询结构化描述快速查询结构化描述树,而不需要像现有技术中查询视频数据所在的文件,就可以查询到结构化描述所对应的流文件名称,从而根据待查询流文件名称,读取待查询流文件名称对应的流文件,避免了因数据库操作复杂而增加系统复杂度问题,实现乐快速、精确的检索到与待查询结构化描述关联的视频数据。而且,每个结构化描述以独立的节点管理,可以方便的增加或减少视频关联的结构化描述,满足易扩展性的需求。进一步,结构化描述可以以树的形式加载到内存中访问,使得对结构化描述的检索可以快速执行,本发明实施例中,结构化描述树和流文件树分开保存,充分利用存储空间,不需要建立庞大的数据库,也不会产生由于提前分配大块空文件导致的空间浪费问题。
[0128] 本领域内的技术人员应明白,本发明实施例可提供为方法、系统、或计算机程序产品。因此,本发明实施例可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明实施例可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
[0129] 本发明实施例是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
[0130] 这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
[0131] 这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
[0132] 显然,本领域的技术人员可以对本发明实施例进行各种改动和变型而不脱离本申请的精神和范围。这样,倘若本发明实施例的这些修改和变型属于本申请权利要求及其等同技术的范围之内,则本申请也意图包含这些改动和变型在内。