本发明涉及数据压缩存储领域,具体涉及一种消防救援装备用数据智能管理系统。
背景技术:
1、为了建立快速响应的消防救援机制,消防救援装备数据平台对消防救援装备进行电子化管理,对消防救援装备的类别、型号、使用情况、出入库记录等进行登记保存,使得消防救援时,消防救援装备可快速调配,确保消防救援的及时性以及有效性。
2、由于消防救援装备相关数据的数据量大,需要进行压缩存储。现有的压缩算法如霍夫曼编码、算术编码等对于的压缩效率依赖于数据中每种字符的频率,当每种字符的频率差异较大时,利用霍夫曼编码、算术编码等可以取到较好的压缩效果,当每种字符的频率较为相近时,利用霍夫曼编码、算术编码难以取得较好的压缩效果。
3、消防救援装备相关数据中每种字符的频率不一定相差较大,利用霍夫曼编码、算术编码等现有的压缩算法对消防救援装备相关数据进行压缩的压缩效率难以保证。
技术实现思路
1、为了解决上述问题,本发明提供一种消防救援装备用数据智能管理系统,所述系统包括:
2、消防数据获取模块,获取消防数据;
3、消防数据预处理模块,将消防数据转换为原始序列,对原始数据利用bwt算法进行编码,得到重排序列;
4、消防数据压缩模块,根据重排序列构建范式二叉树;获取重排序列中每种十进制数出现的序号,分别构成每种十进制数的序号序列;统计重排序列中每种十进制数每次出现时的游程,分别构成每种十进制数的游程序列;根据序号序列以及游程序列获取每种十进制数的分布位置;按照分布位置从小到大的顺序对所有种十进制数进行排序,得到分布序列;根据每种十进制数的分布位置以及游程序列获取更新位置序列;
5、根据分布序列、更新位置序列以及范式二叉树对重排序列进行编码,包括:
6、s1:设置初始值为1的计数器;
7、s2:根据范式二叉树获取分布序列中每种十进制数的编码;
8、s3:根据每种十进制数对应的编码对重排序列中每个十进制数依次进行编码,每编码一个十进制数,将计数器加一,并将已编码的十进制数从重排序列中删除;当计数器的值等于更新位置序列中元素的值时,对分布序列进行更新;
9、s4:重复s2、s3,直到重排序列为空时停止迭代;将已编码的十进制数的编码结果构成压缩数据;
10、消防数据存储模块,对压缩数据进行存储;
11、消防数据解压模块,对压缩数据进行解压;
12、消防数据管理模块,根据消防数据对消防救援装备进行管理。
13、优选的,所述将消防数据转换为原始序列,包括的步骤为:
14、将消防数据编码成二进制形式,得到二进制序列,将二进制序列划分为长度相等的多组二进制数,将每组二进制数转换为十进制数,将所有十进制数构成的序列作为原始序列。
15、优选的,所述根据重排序列构建范式二叉树,包括的步骤为:
16、统计重排序列中十进制数的种类数n,构建n层的范式二叉树,范式二叉树中每个左节点均为叶子节点,除最后一层的右节点之外,每个右节点均为父节点。
17、优选的,所述根据序号序列以及游程序列获取每种十进制数的分布位置,包括的步骤为:
18、
19、其中为第i种十进制数在重排序列中的分布位置;为第i种十进制数在重排序列中第j次出现时的序号;为第i种十进制数在重排序列中第j次出现时的游程;为第i种十进制数在重排序列中第k次出现时的游程;为第i种十进制数在重排序列中出现的次数。
20、优选的,所述根据每种十进制数的分布位置以及游程序列获取更新位置序列,包括的步骤为:
21、将每种十进制数的游程序列中游程的最大值作为每种十进制数的最长游程,将分布序列中每种十进制数对应的分布位置加上每种十进制数的最长游程的一半,将所得结果再四舍五入取整,得到更新位置,将所有更新位置构成更新位置序列。
22、优选的,所述根据范式二叉树获取分布序列中每种十进制数的编码,包括的步骤为:
23、将分布序列中的每种十进制数按照从浅层到深层的顺序依次分配给范式二叉树的每个叶子节点,对于范式二叉树中每个分支,将左分支编码为0,右分支编码为1,将根节点到每个叶子节点的所有分支的编码构成每个叶子节点对应的十进制数的编码。
24、优选的,所述对分布序列进行更新,包括的步骤为:
25、将分布序列中第一个元素挪到分布序列的末尾。
26、本发明实施例至少具有如下有益效果:本发明对消防数据进行编码获得原始序列,对原始序列进行重排使得原始序列中相同的十进制数在重排序列中尽可能集中分布,根据重排序列中每种十进制数出现的序号以及游程获取每种十进制数在重排序列中集中分布的位置,根据所有种十进制数在重排序列中集中分布的位置对所有种十进制数进行排序,得到分布序列,将分布序列中的每个元素分配给范式二叉树的每个叶子节点,得到每个十进制数的编码,使得重排序列中分布较为靠前的十进制数的编码长度越短。本发明根据重排序列中每种十进制数集中分布的位置以及最长游程获取更新位置序列,更新位置序列表示了分布序列中每种十进制数在重排序列中集中分布结束的位置,在根据范式二叉树对重排序列进行编码的过程中,每当达到更新位置序列中的位置时,对范式二叉树进行更新,使得当前正在编码的十进制数总能保持较短的编码,从而使得重排序列中每个十进制数的编码都尽可能短,进一步使得最终的压缩数据的数据量,压缩率大。传统的霍夫曼编码、算术编码等对于频率分布差异较大的数据可实现较好的压缩效果,对于频率分布差异较小的数据难以达到较好的压缩效果,本发明相较于现有的霍夫曼编码、算术编码等压缩方法,不但能够对频率分布差异较大的数据实现较好的压缩效果,也能够对频率分布差异较小的数据实现较好的压缩效果,且压缩效率较现有的霍夫曼编码、算术编码等压缩方法高。
1.一种消防救援装备用数据智能管理系统,其特征在于,所述系统包括:
2.根据权利要求1所述的一种消防救援装备用数据智能管理系统,其特征在于,所述将消防数据转换为原始序列,包括的步骤为:
3.根据权利要求1所述的一种消防救援装备用数据智能管理系统,其特征在于,所述根据重排序列构建范式二叉树,包括的步骤为:
4.根据权利要求1所述的一种消防救援装备用数据智能管理系统,其特征在于,所述根据序号序列以及游程序列获取每种十进制数的分布位置,包括的步骤为:
5.根据权利要求1所述的一种消防救援装备用数据智能管理系统,其特征在于,所述根据每种十进制数的分布位置以及游程序列获取更新位置序列,包括的步骤为:
6.根据权利要求1所述的一种消防救援装备用数据智能管理系统,其特征在于,所述根据范式二叉树获取分布序列中每种十进制数的编码,包括的步骤为:
7.根据权利要求1所述的一种消防救援装备用数据智能管理系统,其特征在于,所述对分布序列进行更新,包括的步骤为: