掌桥专利:专业的专利平台
掌桥专利
首页

技术领域

本发明涉及数据压缩领域,特别涉及一种数据压缩存储方法。

背景技术

目前,大部份电表的数据存储,取决于定义参量时原始数据的类型。

比如,电压定义为INT型,那么在芯片内存RAM里面分配的空间是2个字节,当要存储在非易失性存储器NVM(比如EEPROM)里时,也会按2个字节的长度来存储。再比如,电能表定义为LONG型,那么RAM与存储NVM时,都会按4字节来。

这种通用储存做法在功能上没有问题,但有缺点,当需要存储数据量大时,会造成NVM空间的浪费,这意味着要用更大的存储,造成了产品本身成本的提高。

发明内容

本发明提供了一种数据压缩存储方法,以解决至少一个上述技术问题。

为解决上述问题,作为本发明的一个方面,提供了一种数据压缩存储方法,包括:

步骤1,数据准备

若为FLOAT型数据,需先转化为整型,再转化为64bit长数据;

若不是FLOAT型数据,刚直接统一转化为64bit数据;

步骤2,每个数据都按“最大使用位数”按位“与”0xFF进行屏蔽处理,以得到需要压缩的位结果,以使一个数据溢出时不会影响到相邻数据;

步骤3,将位结果通过移位连接起来;

步骤4,将结果输出到Buf中实现数据的压缩存储。

优选地,步骤3包括:将每个数据的位结果按其所在的顺序“或”到位序列上,实现上述移位连接,并得到最终压缩结果。

由于采用了上述技术方案,本发明可以在最大限制的节省存储器容量开支,节约成本。

具体实施方式

以下对本发明的实施例进行详细说明,但是本发明可以由权利要求限定和覆盖的多种不同方式实施。

本发明涉及一种数据压缩存储算法,尤其应用于对成本要求较严苛的电表表计上,其可以紧凑地把数据无损地进行存储与恢复,从而大大节约NVM存储空间,也节约了成本。

下面,通过一个实施例,对本发明的具体实施过程进行详细说明。

例如,在一个实施例中,需要对以下四个数据进行压缩处理,如下表所示:

按现有技术中常规的方式,上述四个数据的储存值为:0x449A5000096F031519,也就是需要9个字节的空间来存储以上数据。

但实际使用中,若上述四个数据没必要使用最大值的情况下,就会造成一些存储空间浪费。

实际上,上述四个数据,“最大使用位数”分别为13bits、13bits、17bits、5bits。那么,可以通过本发明中的以下压缩,来节省存储空间。

本发明中的数据压缩过程如下:

1.数据准备

1.1若为FLOAT型数据,需先转化为整型,再转化为64bit长数据。

如上例的FLOAT32转化为整型后为(0x04D2)

1.2若不是FLOAT型数据,刚直接统一转化为64bit数据。

转化为64bit是为了方便后面移位及或处理。

2.每个数据,都按“最大使用位数”,来按位“与”0xFF进行屏蔽处理,这样即使本数据溢出,超过了“最大使用位数”,也不会影响到相邻数据。

3.将数据的“位结果”,通过移位,连接起来。如上例处理如下:

得到的最终结果,按二进制表达为:

110010000000110001010101001011011110010011010010

按十六进制表达,即0xC80C552DE4D2

4.将结果输出到Buf。可见,上述例子里,原来为9个字节空间的数据,经过压缩之后,存储空间变为6个字节。

解压缩过程是上面步骤的反过程。

由于采用了上述技术方案,本发明可以在最大限制的节省存储器容量开支,节约成本。

以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

相关技术
  • 数据压缩存储方法、数据压缩方法、装置、设备及介质
  • 一种道路定位数据压缩存储方法和终端设备
技术分类

06120113136019