CN106549672B - 一种加速度传感器的三轴数据压缩方法 - Google Patents
一种加速度传感器的三轴数据压缩方法 Download PDFInfo
- Publication number
- CN106549672B CN106549672B CN201610928004.5A CN201610928004A CN106549672B CN 106549672 B CN106549672 B CN 106549672B CN 201610928004 A CN201610928004 A CN 201610928004A CN 106549672 B CN106549672 B CN 106549672B
- Authority
- CN
- China
- Prior art keywords
- data
- original
- length
- difference
- acceleration information
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Classifications
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M7/00—Conversion of a code where information is represented by a given sequence or number of digits to a code where the same, similar or subset of information is represented by a different sequence or number of digits
- H03M7/30—Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
- H03M7/3002—Conversion to or from differential modulation
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Compression, Expansion, Code Conversion, And Decoders (AREA)
Abstract
一种加速度传感器的三轴数据压缩方法,包括:采集原始加速度数据;保存第一组原始加速度数据;分别计算相邻两组原始加速度数据之间的△Xi、△Yi、△Zi;设定三种数据存储格式;根据△Xi、△Yi、△Zi,采用设定的三种数据存储格式中的一种或采用原始加速度数据进行数据存储;对Huffman压缩数据存储的两点优化:获取的总长度数据,采用大于总长度数据的长度、且为最小的一个Byte的整数倍的长度来存储总长度数据;统计出现的ASCII字符,存储编码掩码及对应的权重。本发明将采集的原始加速度数据通过连续两次压缩,将待发送数据的长度大大缩短,从而达到节省存储空间,节省数据流量并缩短传输时间的目的。
Description
技术领域
本发明涉及数据压缩领域,尤其设计一种加速度传感器的三轴数据压缩方法。
背景技术
带有加速度传感器的电子产品,通常会采集到大量的三轴加速度数据,用于后台分析,还原产品或者是携带产品的物体(车辆,飞机,人等)的运动状态。原始加速度数据直接传输会占用通信资源和存储空间,耗费较多时间。
因此,需要对加速度数据先压缩再传输,以达到节省存储空间,节省数据流量并缩短传输时间的目的。
发明内容
本发明的目的是为了解决现有技术的不足,提供一种加速度传感器的三轴数据压缩方法。
本发明的目的是通过以下技术方案实现的:
一种加速度传感器的三轴数据压缩方法,包括:
步骤1,采集多组加速度传感器的原始加速度数据,每组原始加速度数据包括原始X轴加速度数据、原始Y轴加速度数据、原始Z轴加速度数据;按照采集时间的先后顺序对多组原始加速度数据进行排序;
步骤2,获取第一组原始加速度数据,并保存第一组原始加速度数据;
步骤3,分别计算相邻两组原始加速度数据之间的原始X轴加速度数据差值△Xi、原始Y轴加速度数据差值△Yi、原始Z轴加速度数据差值△Zi,其中,i为相邻两组原始加速度数据中的后一组的序号;
步骤4,设定三种数据存储格式:相邻两组原始加速度数据相同时的数据存储格式、第一Delta差值数据存储格式、第二Delta差值数据存储格式;根据原始X轴加速度数据差值△Xi、原始Y轴加速度数据差值△Yi和原始Z轴加速度数据差值△Zi的数据,将相邻两组原始加速度数据中的后一组采用上述三种数据存储格式中的一种进行存储或直接存储原始加速度数据;
步骤5,获取步骤4中的总长度数据,所述总长度数据表示步骤4中存储的数据的总长度;采用大于总长度数据的长度、且为最小的一个Byte的整数倍的长度来存储总长度数据;
统计步骤4中存储的数据中出现的ASCII字符的权重,所述每个ASCII字符的权重表示每个ASCII字符出现的次数;设定编码掩码,所述编码掩码占用的长度为32Byte,即256个Bit,每个Bit对应一个ASCII字符,若ASCII字符的权重为零,则此ASCII字符对应的Bit为0;若ASCII字符的权重不为零,则此ASCII字符对应的Bit为1。
存储步骤4中存储的数据中出现的ASCII字符及其对应的权重数据。
上述的方法,其中,在所述步骤1中,所述原始加速度数据为二进制数据。
上述的方法,其中,在所述步骤4中,所述相邻两组原始加速度数据相同时的数据存储格式包括数据属性标记,所述数据属性的默认值为0b010;若△Xi、△Yi、△Zi均为零,则将相邻两组原始加速度数据中的后一组存储为0b010,其中0b010的存储长度为3Bit。
上述的方法,其中,在所述步骤4中,所述第一Delta差值数据存储格式包括:
数据属性,所述数据属性的默认值为0b011,存储长度为3Bit;
原始X轴加速度数据的差值数据,存储长度为4Bit;
原始Y轴加速度数据的差值数据,存储长度为4Bit;
原始Z轴加速度数据的差值数据,存储长度为4Bit。
上述的方法,其中,若-8≤△Xi≤7、-8≤△Yi≤7、-8≤△Zi≤7,则将相邻两组原始加速度数据中的后一组采用第一Delta差值数据存储格式存储。
上述的方法,其中,在所述步骤4中,所述第二Delta差值数据存储格式包括:
数据属性,所述数据属性的默认值为0b100,存储长度为3Bit;
原始X轴加速度数据的差值数据,存储长度为8Bit;
原始Y轴加速度数据的差值数据,存储长度为8Bit;
原始Z轴加速度数据的差值数据,存储长度为8Bit。
上述的方法,其中,若-128≤△Xi≤127、-128≤△Yi≤127、-128≤△Zi≤127,则将相邻两组原始加速度数据中的后一组采用第二Delta差值数据存储格式存储。
上述的方法,其中,所述原始X轴加速度数据差值△Xi、原始Y轴加速度数据差值△Yi和原始Z轴加速度数据差值△Zi不满足设定的三种数据存储格式中的任何一个时,则将相邻两组原始加速度数据中的后一组直接采用原始加速度数据存储。
上述的方法,其中,在所述步骤5中,所述ASCII字符∈[0,255]。
上述的方法,其中,在所述步骤5中,在存储出现的ASCII字符对应的权重数据时,判断是否有权重数据占用的长度大于一个字节,若有,则将所有权重数据进行等比例缩放,使每个权重数据占用的长度小于等于一个字节;若无,则直接存储权重数据。
综上所述,本发明将采集的原始加速度数据通过连续两次压缩,将待发送数据的长度大大缩短,从而达到节省存储空间,节省数据流量并缩短传输时间的目的。
具体实施方式
本发明提供了一种加速度传感器的三轴数据压缩方法,首先采用Delta差值压缩算法对原始加速度数据进行压缩。
采集加速度传感器的三轴数据时,在大概率情况下,连续两组数据间的变化并不大,所以可以通过存储与前一组数据间的Delta差值的方式,来达到减少数据长度的目的。
具体包括以下步骤:
步骤1,采集多组加速度传感器的原始加速度数据,每组原始加速度数据包括原始X轴加速度数据、原始Y轴加速度数据、原始Z轴加速度数据;所述原始加速度数据为二进制数据。按照采集时间的先后顺序对多组原始加速度数据进行排序,每组原始加速度数据有唯一的序号。
步骤2,获取第一组原始加速度数据,并保存第一组原始加速度数据。原始加速度数据的数据存储格式包括:数据属性,所述数据属性的默认值为0b001,存储长度为3Bit;原始X轴加速度数据,存储长度为16Bit;原始Y轴加速度数据,存储长度为16Bit;原始Z轴加速度数据,存储长度为16Bit。
步骤3,对已经排序好的多组原始加速度数据进行数据处理,分别计算相邻两组原始加速度数据之间的原始X轴加速度数据差值△Xi、原始Y轴加速度数据差值△Yi、原始Z轴加速度数据差值△Zi,其中,i为相邻两组原始加速度数据中的后一组的序号。
步骤4,设定三种数据存储格式,根据原始X轴加速度数据差值△Xi、原始Y轴加速度数据差值△Yi和原始Z轴加速度数据差值△Zi的数据,将相邻两组原始加速度数据中的后一组采用三种数据存储格式中的一种进行存储或直接存储原始加速度数据。
三种数据存储格式分别包括:
(1)相邻两组原始加速度数据相同时的数据存储格式,其包括数据属性标记,所述数据属性的默认值为0b010,存储长度为3Bit。若△Xi、△Yi、△Zi均为零,即相邻两组原始加速度数据相同时,将相邻两组原始加速度数据中的后一组采用上述数据存储格式存储,即存储为0b010;
(2)第一Delta差值数据存储格式,包括:数据属性,所述数据属性的默认值为0b011,存储长度为3Bit;原始X轴加速度数据的差值数据,存储长度为4Bit;原始Y轴加速度数据的差值数据,存储长度为4Bit;原始Z轴加速度数据的差值数据,存储长度为4Bit。
若-8≤△Xi≤7、-8≤△Yi≤7、-8≤△Zi≤7,则将相邻两组原始加速度数据中的后一组采用第一Delta差值数据存储格式存储。
(3)第二Delta差值数据存储格式,包括:数据属性,所述数据属性的默认值为0b100,存储长度为3Bit;原始X轴加速度数据的差值数据,存储长度为8Bit;原始Y轴加速度数据的差值数据,存储长度为8Bit;原始Z轴加速度数据的差值数据,存储长度为8Bit。
若-128≤△Xi≤127、-128≤△Yi≤127、-128≤△Zi≤127,则将相邻两组原始加速度数据中的后一组采用第二Delta差值数据存储格式存储。
当所述原始X轴加速度数据差值△Xi、原始Y轴加速度数据差值△Yi、原始Z轴加速度数据差值△Zi不满足上述三种数据存储格式的任何一个时,则将相邻两组原始加速度数据中的后一组直接采用原始加速度数据存储,存储格式为步骤2中所述的原始加速度数据的数据存储格式。
通过上述步骤1~4的方法,由于原始X轴加速度数据差值△Xi、原始Y轴加速度数据差值△Yi、原始Z轴加速度数据差值△Zi的占用空间小于原始加速度数据的占用空间,因此,可以达到压缩原始加速度数据,节省存储空间的目的。以一组原始加速度数据占用6个Byte为例,其中X轴加速度、Y轴加速度、Z轴加速度各占用2个Byte。则若采用上述的第一Delta差值数据存储格式或第二Delta差值数据存储格式进行存储,则△Xi、△Yi、△Zi可分别占用4个Bit或者8个Bit,相比原始加速度数据的存储,大大节省了存储空间。
将上述通过Delta差值压缩算法压缩后的原始加速度数据再进行第二次压缩,第二次的压缩方法是基于Huffman编码压缩算法的压缩方法,本发明对Huffman编码压缩算法进行了改进。
具体包括:
获取通过Delta差值压缩算法压缩后的原始加速度数据的总长度,用总长度数据来表示总长度;采用大于总长度数据的长度、且为最小的一个Byte的整数倍的长度来存储总长度数据。传统的Huffman编码压缩算法中,数据长度域为固定的4个字节。本发明结合实际应用,将长度域更改为可变的长度,在实际应用中,大部分情况下,只需要两个字节就可存储总长度数据(2^14=16384),实际压缩数据的总长度一般在15000左右。即使是超过16384个字节的长度,若可以用3个字节存储总长度数据,则本发明采用用3个字节存储总长度数据。即判断可存储总长度数据的最小的字节数且保证字节数为整数,采用最小的字节数存储总长度数据。通过这种方式,可以达到节省了存储空间和数据流量的目的,同时,又可以避免因数据长度域的固定带来的压缩数据长度受限的问题。
统计通过Delta差值压缩算法压缩后的原始加速度数据中出现的ASCII字符的权重,所述每个ASCII字符的权重表示每个ASCII字符出现的次数,所述ASCII字符∈[0,255]。
设定编码掩码,所述编码掩码占用的长度为32Byte,即256个Bit,每个Bit对应一个ASCII字符,若ASCII字符的权重为零,则此ASCII字符对应的Bit为0;若ASCII字符的权重不为零,则此ASCII字符对应的Bit为1。即256个Bit用于表示256个ASCII字符的权重是否为0,有多少个ASCII字符的权重不为0。
存储通过Delta差值压缩算法压缩后的原始加速度数据中出现的ASCII字符及其对应的权重数据。将总长度数据、编码掩码、字符权重、压缩数据一起保存。
在存储出现的ASCII字符对应的权重数据时,判断是否有权重数据占用的长度大于一个字节,若有,则将所有权重数据进行等比例缩放,使每个权重数据占用的长度小于等于一个字节;若无,则直接存储权重数据。
在传统的Huffman编码压缩算法中,将区间[0,255]中的所有256个ASCII码出现的频率都放入最终的压缩数据中,即未出现的ASCII码也放入最终的压缩数据中,每个ASCII码的权重数据采用2个字节长度进行存储,这样未出现过的一个ASCII码就会占用2个字节的空间。
为了避免出现浪费空间的情况,本专利引入了32个字节的编码掩码,通过这32个字节的编码掩码,有效的将未曾出现过的ASCII码过滤掉,节省占用的空间。例如,在通过Delta差值压缩算法压缩后的原始加速度数据中,总共出现了150个ASCII码(ASCII码∈[0,255])出现过,使用传统的Huffman算法,仍然会占去512个字节来保存权重数据。但是,通过本发明方法的改进,实际需要占用的字节数为32+150=182,相对于传统的Huffman编码压缩算法,节约了330个字节。
本发明将采集的原始加速度数据通过连续两次压缩,将待发送数据的长度大大缩短,从而达到节省存储空间,节省数据流量并缩短传输时间的目的。
以上所述的实施例仅用于说明本发明的技术思想及特点,其目的在于使本领域内的技术人员能够了解本发明的内容并据以实施,不能仅以本实施例来限定本发明的专利范围,即凡依本发明所揭示的精神所作的同等变化或修饰,仍落在本发明的专利范围内。
Claims (5)
1.一种加速度传感器的三轴数据压缩方法,其特征在于,包括:
步骤1,采集多组加速度传感器的原始加速度数据,每组原始加速度数据包括原始X轴加速度数据、原始Y轴加速度数据、原始Z轴加速度数据;按照采集时间的先后顺序对多组原始加速度数据进行排序;
步骤2,获取第一组原始加速度数据,并保存第一组原始加速度数据;
步骤3,分别计算相邻两组原始加速度数据之间的原始X轴加速度数据差值△Xi、原始Y轴加速度数据差值△Yi、原始Z轴加速度数据差值△Zi,其中,i为相邻两组原始加速度数据中的后一组的序号;
步骤4,设定三种数据存储格式:相邻两组原始加速度数据相同时的数据存储格式、第一Delta差值数据存储格式、第二Delta差值数据存储格式;根据原始X轴加速度数据差值△Xi、原始Y轴加速度数据差值△Yi和原始Z轴加速度数据差值△Zi的数据,将相邻两组原始加速度数据中的后一组采用上述三种数据存储格式中的一种进行存储或直接存储原始加速度数据;
所述相邻两组原始加速度数据相同时的数据存储格式包括数据属性标记,所述数据属性的默认值为0b010;若△Xi、△Yi、△Zi均为零,则将相邻两组原始加速度数据中的后一组存储为0b010,其中0b010的存储长度为3Bit;
所述第一Delta差值数据存储格式包括:数据属性,所述数据属性的默认值为0b011,存储长度为3Bit;原始X轴加速度数据的差值数据,存储长度为4Bit;原始Y轴加速度数据的差值数据,存储长度为4Bit;原始Z轴加速度数据的差值数据,存储长度为4Bit;若-8≤△Xi≤7、-8≤△Yi≤7、-8≤△Zi≤7,则将相邻两组原始加速度数据中的后一组采用第一Delta差值数据存储格式存储;
所述第二Delta差值数据存储格式包括:数据属性,所述数据属性的默认值为0b100,存储长度为3Bit;原始X轴加速度数据的差值数据,存储长度为8Bit;原始Y轴加速度数据的差值数据,存储长度为8Bit;原始Z轴加速度数据的差值数据,存储长度为8Bit;若-128≤△Xi≤127、-128≤△Yi≤127、-128≤△Zi≤127,则将相邻两组原始加速度数据中的后一组采用第二Delta差值数据存储格式存储;
步骤5,获取步骤4中的总长度数据,所述总长度数据表示步骤4中存储的数据的总长度;采用大于总长度数据的长度、且为最小的一个Byte的整数倍的长度来存储总长度数据;
统计步骤4中存储的数据中出现的ASCII字符的权重,每个ASCII字符的权重表示每个ASCII字符出现的次数;设定编码掩码,所述编码掩码占用的长度为32Byte,即256个Bit,每个Bit对应一个ASCII字符,若ASCII字符的权重为零,则此ASCII字符对应的Bit为0;若ASCII字符的权重不为零,则此ASCII字符对应的Bit为1;
存储步骤4中存储的数据中出现的ASCII字符及其对应的权重数据。
2.根据权利要求1所述的方法,其特征在于,在所述步骤1中,所述原始加速度数据为二进制数据。
3.根据权利要求1或2任一所述的方法,其特征在于,所述原始X轴加速度数据差值△Xi、原始Y轴加速度数据差值△Yi和原始Z轴加速度数据差值△Zi不满足设定的三种数据存储格式中的任何一个时,则将相邻两组原始加速度数据中的后一组直接采用原始加速度数据存储。
4.根据权利要求1所述的方法,其特征在于,在所述步骤5中,所述ASCII字符∈[0,255]。
5.根据权利要求1所述的方法,其特征在于,在所述步骤5中,在存储出现的ASCII字符对应的权重数据时,判断是否有权重数据占用的长度大于一个字节,若有,则将所有权重数据进行等比例缩放,使每个权重数据占用的长度小于等于一个字节;若无,则直接存储权重数据。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610928004.5A CN106549672B (zh) | 2016-10-31 | 2016-10-31 | 一种加速度传感器的三轴数据压缩方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610928004.5A CN106549672B (zh) | 2016-10-31 | 2016-10-31 | 一种加速度传感器的三轴数据压缩方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN106549672A CN106549672A (zh) | 2017-03-29 |
CN106549672B true CN106549672B (zh) | 2019-07-12 |
Family
ID=58392754
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201610928004.5A Active CN106549672B (zh) | 2016-10-31 | 2016-10-31 | 一种加速度传感器的三轴数据压缩方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN106549672B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP6866872B2 (ja) | 2018-04-25 | 2021-04-28 | オムロン株式会社 | 通信装置、通信装置の制御方法、外部機器、外部機器の制御方法、及び制御システム |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6169499B1 (en) * | 1999-06-19 | 2001-01-02 | Unisys Corporation | LZW data compression/decompression apparatus and method with embedded run-length encoding/decoding |
CN101073043A (zh) * | 2004-12-06 | 2007-11-14 | 奥托立夫开发公司 | 数据压缩方法 |
CN102427369A (zh) * | 2011-10-19 | 2012-04-25 | 广东电网公司电力科学研究院 | 生产型时序数据的实时全息无损压缩方法 |
CN102932001A (zh) * | 2012-11-08 | 2013-02-13 | 大连民族学院 | 运动捕获数据压缩、解压缩方法 |
CN103888144A (zh) * | 2014-03-04 | 2014-06-25 | 上海挚连科技有限公司 | 基于信息熵优选的自适应数据预测编码算法 |
-
2016
- 2016-10-31 CN CN201610928004.5A patent/CN106549672B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6169499B1 (en) * | 1999-06-19 | 2001-01-02 | Unisys Corporation | LZW data compression/decompression apparatus and method with embedded run-length encoding/decoding |
CN101073043A (zh) * | 2004-12-06 | 2007-11-14 | 奥托立夫开发公司 | 数据压缩方法 |
CN102427369A (zh) * | 2011-10-19 | 2012-04-25 | 广东电网公司电力科学研究院 | 生产型时序数据的实时全息无损压缩方法 |
CN102932001A (zh) * | 2012-11-08 | 2013-02-13 | 大连民族学院 | 运动捕获数据压缩、解压缩方法 |
CN103888144A (zh) * | 2014-03-04 | 2014-06-25 | 上海挚连科技有限公司 | 基于信息熵优选的自适应数据预测编码算法 |
Also Published As
Publication number | Publication date |
---|---|
CN106549672A (zh) | 2017-03-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20220217379A1 (en) | Methods and apparatuses for hierarchically encoding and decoding a bytestream | |
CN100517979C (zh) | 一种数据压缩及解压缩方法 | |
CN106170921A (zh) | 涉及符号压缩的数据的源编码和解码方法及装置 | |
CN108153483B (zh) | 一种基于属性分组的时序数据压缩方法 | |
CN108833058B (zh) | 一种广域测量系统通信过程动态数据压缩、解压的方法 | |
CN105120276B (zh) | 自适应Motion JPEG编码方法和系统 | |
CN103188810B (zh) | 指示位表下发方法和指示操作方法及设备和系统 | |
CN101751440A (zh) | 一种数据压缩/解压缩方法及其装置 | |
CN108234464B (zh) | 用于信号集中监测系统的采集数据高效压缩方法 | |
CN108737976A (zh) | 一种基于北斗短报文的压缩传输方法 | |
CN104704825A (zh) | 分段图像数据的无损压缩 | |
CN106549672B (zh) | 一种加速度传感器的三轴数据压缩方法 | |
CN116016606A (zh) | 一种基于智慧云的污水处理运维数据高效管理系统 | |
CN113965207B (zh) | 一种基于deflate霍夫曼编码的动态码表生成装置和方法 | |
CN104156990A (zh) | 一种支持特大型数据窗口的无损压缩编码方法及系统 | |
US6748520B1 (en) | System and method for compressing and decompressing a binary code image | |
CN117914951A (zh) | 一种通讯数据传输压缩方法及系统 | |
CN114187369A (zh) | 一种基于视频压缩技术的气象预报数据压缩方法 | |
CN117097906B (zh) | 一种区域医疗资源高效利用的方法及系统 | |
CN106790550B (zh) | 一种适用于配电网监测数据压缩的系统 | |
CN116208667B (zh) | 一种可变长高压缩的比特报文编解码方法 | |
CN114024952B (zh) | 一种基于dl/t 698.45-2007协议的文件压缩传输方法 | |
CN110518915A (zh) | 一种比特位计数编码以及解码方法 | |
CN104301726A (zh) | 一种图像无损压缩与解压缩的方法 | |
CN108829930A (zh) | 三维数字化工艺设计mbd模型的轻量化方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |