1.本发明涉及分布式存储技术领域,具体地,涉及一种视频数据的智能分布式存储方法及系统。
背景技术:2.计算机技术不断地飞速发展带来了网络应用的飞速普及,数据信息量呈现出爆炸性的增长,特别是图像和视频数据占据了海量的空间。随着大数据时代的到来,日益增长的海量数据对存储系统提出了严峻的挑战。传统集中是的文件系统已经无法满足大数据存储和处理的需求了,因此建立海量数据存储的新型文件系统已经成为大数据领域的一个重要研究课题。伴随着云计算技术的不断发展,分布式存储技术成为了一种有效的海量数据存储解决方案。分布式存储采用云计算的理念通过集群技术和分布式文件系统等功能,将分布在不同区域的独立存储设备通过网络联合起来进行协同工作,共同对用户提供数据存储和访问功能。
3.实际的大规模分布系统分布式文件系统通常采用廉价的商业计算机或者存储硬盘座位存储节点,存储开销较低且具有良好的扩展性。但是随着系统规模的不断扩大增加了系统故障发生的概率,例如节点离线、突发断电、磁盘损坏等,是的存储系统可靠性面临严峻的考验。为了保证数据的可靠性,大规模文件系统需要引入数据冗余机制。传统的基于数据拷贝的方案简单易于管理,并且支持高效的数据恢复。但是传统的数据备份机制的缺点在于存储开销大、存储效率低,特别是在存储大数据文件的时候,副本引起的开销是不可忽略的。
4.研究表明,在相同冗余信息的情况下,纠删码技术可以大幅地提高系统的存储效率。在当前基于纠删码的分布式存储系统中,编码方案通常采用mds(maximum distance separable)码。具体来说,一个参数为(n,k)的mds码将大小为m的原数据文件均分成k个大小相等的数据块,通过编码生成n个大小相等的编码块,并分别存储在n个不同的节点上,其中系统中任意k个节点存储的数据就可重构出原始文件。mds编码技术能够在保证系统容错性的情况下降低存储开销,因此适合大文件存储和档案数据备份应用。rs(reed-solomon)码是一种典型的满足mds特性的码字。
5.当存储系统中出现节点失效时,为了保持存储系统的完整性,需要恢复该节点存储的数据并存储到替换节点中,该过程称为节点修复过程。对传统的mds码,其修复过程首先需要从k个存储节点下载数据并重构出源文件,重新编码出丢失的数据并存储到新引入的节点上。
6.视频具有非常大数据量,在当前的分布式存储中系统中,通常使用多副本和纠删码的数据容灾技术来提高数据的安全性,但多副本和纠删码都需要使用大量的额外存储空间来存储冗余信息,导致视频数据占据巨大的存储空间。视频数据本身具有语义特征,其冗余信息不仅存在于每帧数据内,更存在于相邻帧之间,视频压缩算法利用了视频的空间冗余和时间冗余,将视频进行了大幅的压缩。现有技术方案中存在:1)海量视频数据在分布式
存储中的存储空间可用度低;2)视频数据帧丢失修复问题。
技术实现要素:7.针对现有技术中的缺陷,本发明提供一种视频数据的智能分布式存储方法及系统。
8.根据本发明提供的一种视频数据的智能分布式存储方法及系统,所述方案如下:
9.第一方面,提供了一种视频数据的智能分布式存储方法,所述方法包括:
10.视频存储步骤:将采集的原始视频文件进行解析、划分和存储;
11.视频修复步骤:修复解析视频文件过程中的受损帧数据,并在修复后重新存储;
12.视频读取解析步骤:将存储后的视频文件按照原始视频文件的顺序进行拼接,返回完整视频文件。
13.优选地,所述视频存储步骤具体包括:
14.步骤s1:根据视频压缩算法,对原始视频文件进行解析,得到解析存储数据m;
15.步骤s2:根据解析存储数据m将视频数据划分得到若干个数据存储块;
16.步骤s3:对所述数据存储块划分为不同重要性等级的编码块集合;
17.步骤s4:将不同重要性等级的编码块集合按照不同的配置存储到分布式存储系统中。
18.优选地,所述步骤s1包括:读取原始视频文件,根据视频压缩算法产生的i帧数据、b帧数据、p帧数据的帧类型,分别得到每帧数据的起始地址和数据长度信息。
19.优选地,所述步骤s2包括:
20.步骤s2.1:根据解析存储数据m中每帧图像数据的起始地址和数据长度信息,将每帧图像数据分别拆分并组合为i帧数据、b帧数据和p帧数据;
21.步骤s2.2:将i帧数据、b帧数据和p帧数据分别叠加组合为i帧数据存储块、p帧数据存储块、b帧数据存储块,并记录其中每帧数据所在数据存储块的编号以及在数据存储块中的位置信息,将其添加入解析存储数据m中。
22.优选地,所述步骤s3包括:将各类帧的数据存储块划分不同的数据安全等级,i帧数据存储块设为最高重要级数据,p、b帧数据存储块按所需配置设为相对低重要性;
23.所述步骤s4包括:将数据不同重要等级的数据存储块分别设置不同的数据安全配置,并存入分布式存储系统中。
24.优选地,所述视频修复步骤具体包括:
25.1)通过解析原始视频文件得到受损帧数据;
26.2)判断受损帧数据的位置和属性;
27.3)根据不同的受损情况解压出受损帧数据的前后相邻帧,使用智能算法通过前后帧修复受损帧数据;
28.4)将修复后的视频文件重新存储。
29.优选地,所述视频读取解析步骤具体包括:
30.1)根据解析存储数据m,得到目标视频每帧数据的存储位置以及数据长度;
31.2)将解析存储数据m按原始视频文件的顺序进行拼接;
32.3)返回完整视频文件。
33.第二方面,提供了一种视频数据的智能分布式存储系统,所述系统包括:
34.视频存储模块:将采集的原始视频文件进行解析、划分和存储;
35.视频修复模块:修复解析视频文件过程中的受损帧数据,并在修复后重新存储;
36.视频读取解析模块:将存储后的视频文件按照原始视频文件的顺序进行拼接,返回完整视频文件。
37.优选地,所述视频存储模块具体包括:
38.模块m1:根据视频压缩算法,对原始视频文件进行解析,得到解析存储数据m;
39.模块m2:根据解析存储数据m将视频数据划分得到若干个数据存储块;
40.模块m3:对所述数据存储块划分为不同重要性等级的编码块集合;
41.模块m4:将不同重要性等级的编码块集合按照不同的配置存储到分布式存储系统中;
42.所述模块m1包括:读取原始视频文件,根据视频压缩算法产生的i帧数据、b帧数据、p帧数据的帧类型,分别得到每帧数据的起始地址和数据长度信息;
43.所述模块m2包括:
44.模块m2.1:根据解析存储数据m中每帧图像数据的起始地址和数据长度信息,将每帧图像数据分别拆分并组合为i帧数据、b帧数据和p帧数据;
45.模块m2.2:将i帧数据、b帧数据和p帧数据分别叠加组合为i帧数据存储块、p帧数据存储块、b帧数据存储块,并记录其中每帧数据所在数据存储块的编号以及在数据存储块中的位置信息,将其添加入解析存储数据m中;
46.所述模块m3包括:将各类帧的数据存储块划分不同的数据安全等级,i帧数据存储块设为最高重要级数据,p、b帧数据存储块按所需配置设为相对低重要性;
47.所述模块m4包括:将数据不同重要等级的数据存储块分别设置不同的数据安全配置,并存入分布式存储系统中。
48.优选地,所述视频修复模块具体包括:
49.1)通过解析原始视频文件得到受损帧数据;
50.2)判断受损帧数据的位置和属性;
51.3)根据不同的受损情况解压出受损帧数据的前后相邻帧,使用智能算法通过前后帧修复受损帧数据;
52.4)将修复后的视频文件重新存储;
53.所述视频读取解析模块具体包括:
54.1)根据解析存储数据m,得到目标视频每帧数据的存储位置以及数据长度;
55.2)将解析存储数据m按原始视频文件的顺序进行拼接;
56.3)返回完整视频文件。
57.与现有技术相比,本发明具有如下的有益效果:
58.1、、利用视频数据帧之间的冗余图像信息,采用智能算法替代存储空间冗余的方式来保障数据的安全性;
59.2、在保障视频数据安全的前提下,降低了视频的存储占用空间大小,提升了视频数据存储可用度;
60.3、当磁盘节点发生故障造成存储数据丢失时,根据存储在其它节点上的当前视频
其它帧的数据来恢复丢失帧的数据。
附图说明
61.通过阅读参照以下附图对非限制性实施例所作的详细描述,本发明的其它特征、目的和优点将会变得更明显:
62.图1为视频存储步骤流程图;
63.图2为图像修复算法流程图;
64.图3为视频修复步骤;
65.图4为视频读取解析步骤;
66.图5为视频读取解析步骤中定时修复流程图。
具体实施方式
67.下面结合具体实施例对本发明进行详细说明。以下实施例将有助于本领域的技术人员进一步理解本发明,但不以任何形式限制本发明。应当指出的是,对本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变化和改进。这些都属于本发明的保护范围。
68.本发明实施例提供了一种视频数据的智能分布式存储方法,该方法具体包括以下内容:
69.视频存储步骤:将采集的原始视频文件进行解析、划分和存储。
70.具体地,参照图1所示,该视频存储步骤具体包括:
71.步骤s1:根据视频压缩算法,对原始视频文件进行解析,得到解析存储数据m。
72.读取原始视频文件,根据视频压缩算法产生的i帧数据、b帧数据、p帧数据的帧类型,分别得到每帧数据的起始地址和数据长度信息。
73.步骤s2:根据解析存储数据m将视频数据划分得到若干个数据存储块。
74.根据解析存储数据m中每帧图像数据的起始地址和数据长度信息,将每帧图像数据分别拆分并组合为i帧数据、b帧数据和p帧数据。将i帧数据、b帧数据和p帧数据分别叠加组合为i帧数据存储块、p帧数据存储块、b帧数据存储块,并记录其中每帧数据所在数据存储块的编号以及在数据存储块中的位置信息,将其添加入解析存储数据m中。
75.步骤s3:对所述数据存储块划分为不同重要性等级的编码块集合。
76.将各类帧的数据存储块划分不同的数据安全等级,i帧数据存储块设为最高重要级数据,p、b帧数据存储块按所需配置设为相对低重要性。
77.步骤s4:将数据不同重要等级的数据存储块分别设置不同的数据安全配置,并存入分布式存储系统中。
78.视频修复步骤:修复解析视频文件过程中的受损帧数据,并在修复后重新存储。
79.其中,参照图2和图3所示,视频修复步骤具体包括:
80.1)通过解析原始视频文件得到受损帧数据。
81.2)判断受损帧数据的位置和属性。
82.3)根据不同的受损情况解压出受损帧数据的前后相邻帧,使用智能算法通过前后帧修复受损帧数据。
83.4)将修复后的视频文件重新存储。
84.视频读取解析步骤:将存储后的视频文件按照原始视频文件的顺序进行拼接,返回完整视频文件。
85.其中,参照图4和图5所示,视频读取解析步骤具体包括:
86.1)根据解析存储数据m,得到目标视频每帧数据的存储位置以及数据长度;
87.2)将解析存储数据m按原始视频文件的顺序进行拼接;
88.3)返回完整视频文件。
89.接下来,结合实例对本发明进行更为具体的说明。
90.在大规模视频存储场景,例如安防监控视频数据中心,其视频的数据呈现大段画面没有变化,视频数据在时间维度上存在较大冗余,使用大量的帧间编码,帧内编码的i帧的数量远远小于帧间编码的b、p帧。使用本发明的方式,当新的视频文件送入存储中时,根据视频压缩的定义,将不同类型的帧的数据段分开,并记录下每一帧数据段在原视频数据中的位置信息和帧类型数据,将帧内编码的i帧数据存放到冗余机制为k=4,m=2的纠删码的存储池中,将帧间编码的b、p帧数据存放到不设置冗余机制的存储池中。保障数据安全的方式为当磁盘发生故障时,通过解码受损帧的最近邻未受损帧,采用智能图像插帧算法将受损帧修复。使用这样的方式可以降低b、p的冗余机制由智能算法和可靠的参考帧i帧存储来保证b、p帧的安全,从而提高了视频的存储的空间可用度。具体的可用度提升与监控视频的压缩设置以及视频画面的内容有关,经实验测试,可提升存储可用度10%~20%。
91.本发明实施例提供了一种视频数据的智能分布式存储方法及系统,结合视频压缩算法的冗余思想,对视频中的不同帧类型的数据段进行分级存储。着重保障在视频编解码中承担重要角色的参考帧数据,而对通过参考帧解码得到的帧间压缩的帧数据,降低其使用存储冗余保障数据安全的消耗,从而降低整体视频占用的存储空间大小。当磁盘节点发生故障造成存储数据丢失时,根据存储在其它节点上的当前视频其它帧的数据来恢复丢失帧的数据。
92.本领域技术人员知道,除了以纯计算机可读程序代码方式实现本发明提供的系统及其各个装置、模块、单元以外,完全可以通过将方法步骤进行逻辑编程来使得本发明提供的系统及其各个装置、模块、单元以逻辑门、开关、专用集成电路、可编程逻辑控制器以及嵌入式微控制器等的形式来实现相同功能。所以,本发明提供的系统及其各项装置、模块、单元可以被认为是一种硬件部件,而对其内包括的用于实现各种功能的装置、模块、单元也可以视为硬件部件内的结构;也可以将用于实现各种功能的装置、模块、单元视为既可以是实现方法的软件模块又可以是硬件部件内的结构。
93.以上对本发明的具体实施例进行了描述。需要理解的是,本发明并不局限于上述特定实施方式,本领域技术人员可以在权利要求的范围内做出各种变化或修改,这并不影响本发明的实质内容。在不冲突的情况下,本技术的实施例和实施例中的特征可以任意相互组合。