[发明专利]X-BIT压缩编码算法有效
申请号: | 201210404833.5 | 申请日: | 2012-10-23 |
公开(公告)号: | CN102904580A | 公开(公告)日: | 2013-01-30 |
发明(设计)人: | 刘有志;唐新华;罗文理;李志金;谌志东;刘克勤 | 申请(专利权)人: | 湖南大唐先一科技有限公司 |
主分类号: | H03M7/46 | 分类号: | H03M7/46 |
代理公司: | 南昌新天下专利商标代理有限公司 36115 | 代理人: | 胡山 |
地址: | 410000 湖南省长沙市岳*** | 国省代码: | 湖南;43 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | bit 压缩 编码 算法 | ||
技术领域
本发明涉及数据压缩领域,具体为一种X-BIT压缩编码算法。
背景技术
实时数据库广泛应用于电力、电信、钢铁、石油化工、装备制造等领域,主要用于存储工业生产过程中测量点数据(包括点ID、值、时间戳、点状态),负责实时数据(当前测量点值)的读写和历史数据(过去的值)读取,是一种时序数据,它的主要特点是:短时间内数据值相差不大。
对于历史数据的压缩,一般使用的以字符为依据的通用压缩算法(如ZIP、RAR等)是无法达到理解效果的,有时压缩的结果可能比未压缩前更占空间大。目前在业内使用最多的两种实时数据压缩算法是PI使用的旋转门压缩算法和EDNA使用的霍夫曼压缩算法。旋转门压缩算法的压缩比高,但它是有损压缩,数据有失真,对于某些高精度的要求无法满足。哈夫曼压缩算法是编码压缩的一种,通过构造哈夫曼树来实现编码和压缩,哈夫曼压缩算法属于无损压缩,但是要想得到较高的压缩率,需要进行一些特殊的处理。以EDNA为例,虽然它通过一些特殊的处理提高了压缩比,但确牺牲了历史数据的检索效率。
现有技术还存在以下缺点:1、目前使用的按字节压缩(如ZIP、RAR、霍夫曼)主要缺点是压缩率比较低,对二进制数据压缩,压缩率更低。2、有损压缩(旋转门)虽然压缩率比较高,但是数据有一定的失真。
发明内容
本发明所解决的技术问题在于提供一种X-BIT压缩编码算法,以解决实时数据库中,历史数据压缩问题,保证了数据不失真的情况下,提高数据的压缩率,减少磁盘的占用,提高海量数据存储能力。
本发明所解决的技术问题采用以下技术方案来实现:
X-BIT压缩编码算法,具体压缩过程如下:
(1)数据准备并转换:数据在经过实时服务处理后,时间戳将转换成以秒为单位的UTC时间,每条记录用13个字节来存储原始数据;
(2)时间差分:对存储的原始数据进行时间差分处理;
(3)值排序:采用快速排序算法对时间差分处理后的数据进行值排序;
(4)计算序号最大位数:计算出最大序号的最小二进制位;
(5)生成序号压缩流:根据第(4)步计算出的序号最大位数,将序号写入缓存流中;
(6)生成状态压缩流:通过分析状态数据的重复率来决定采用的压缩方案;目前的设置是,当有1/3的状态相同时,采用重复计数法进行压缩;否则,采用按位压缩法;
重复计数法:在进行状态数据分析的同时,将生成一张二维表,记录了每一段重复状态的索引位置和重复数,压缩方案标志占1个位,表示后续压缩数据的压缩方案,在解压时会根据该标志来自动选择解压方案;重复次数使用第(4)步中计算的序号最大位数来存储;接下来的3个位存储状态值;
按位压缩法:以3位为标准来存储状态值;
(7)生成时差压缩流:通过分析时差数据的重复率来决定采用的压缩方案;目前的设置是,当有1/2的时差相同时,采用重复计数法进行压缩;否则,采用按位压缩法;
重复计数法:在对时差数据进行分析的同时,将生成一张二维表,记录了每一段重复时差的索引位置和重复数;时间的第一记录值保留原值;
按位压缩法:通过标志位将不同数值范围内的数按不同的位数进行存储;
(8)生成差值压缩流:通过分析差值数据的重复率来决定采用的压缩方案;目前的设置是,当有1/4的差值相同时,采用重复计数法进行压缩;否则,采用按位压缩法;
重复计数法:处理方式与第(7)步中的重复计数法相同;
按位压缩法:先采用倍率转整算法;再通过标志位将不同数值范围内的数按不同的位数进行存储,此时的处理方式与第(7)步中的按位压缩法相同;
(9)组合:将之前各个步骤输出的结果组合成一个字节流,即是压缩结果。
本发明中,第(7)步中的按位压缩法的具体方法为:通过标志位设置四套存储方案,将不同数值范围内的数按不同的位数进行存储,四套存储方案分别是:时差≤3时,标志位为00,采用2个二进制位存储;3<时差≤63时,标志位为01,采用6个二进制位存储;63<时差≤1024时,标志位为10,采用10个二进制位存储;1024<时差≤4294967295时,标志位为11,采用32个二进制位存储。
本发明中,第(8)步中的倍率转整算法的具体方法为:据本批数据的实际情况,对数据进行转整;查找差分值中小数位最长的一位,根据最长的小数位设定本组值的倍率。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于湖南大唐先一科技有限公司,未经湖南大唐先一科技有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201210404833.5/2.html,转载请声明来源钻瓜专利网。
- 上一篇:一种拳击搏击功能训练器
- 下一篇:一种篮板快速拆装机构