在整个物联网系统中,嵌入式设备作为数据采集、过滤、缓存、传输的节点,前面系列文章分别介绍了嵌入式设备相关的各种数据过滤、校验和压缩存储算法。缓存和传输阶段,考虑到嵌入式设备的存储空间和传输带宽限制,数据包的压缩还可进一步优化。
以嵌入式终端环境数据采集为例,以10秒间隔采样温度、湿度、气压、风速、四项环境数据,正常情况下,数据在短时间内都是小幅波动或者维持不变。假如采集结果(瞎编的,表意为主)如下表:
| 时间戳 | 温度 | 湿度 | 气压 | 风速 |
|---|---|---|---|---|
| 10 | 27 | 75 | 98 | 3 |
| 20 | 27 | 75 | 98 | 3 |
| 30 | 27 | 75 | 99 | 3 |
| 40 | 27 | 76 | 99 | 3 |
| 50 | 28 | 76 | 99 | 2 |
| 60 | 29 | 76 | 99 | 2 |
数据按字节流存储到文件或者传输出去,占30字节。
unsigned char source_data[30]={
10,27,75,98,3,20,27,75,98,3,30,27,75,99,3,40,27,76,99,3,50,28,76,99,2,60,29,76,99,2}
前文行程编码要求数据中尽可能出现连续的内容,上表数据并不适合行程编码来压缩。
线性代数的基础是矩阵,此时此刻,矩阵转置的算法就可发挥作用了。将数据原始数据以二维数据的方式保存。
unsigned char source_matrix[5][6]={
10,10,30,98,3,
20,27,75,98,3,
30,27,75,99,3,
40,27

本文介绍了如何利用矩阵转置算法优化嵌入式设备上的数据压缩。针对环境监测数据,通过将数据组织成二维矩阵并转置,使得数据中的连续性增强,更适合行程编码进行压缩。实验展示了转置前后数据的变化,并提出按一定数据组划分进行转置压缩以提高压缩比。这种方法对于固定长度且内部变化趋于稳定的数据包压缩非常有效。
最低0.47元/天 解锁文章
876

被折叠的 条评论
为什么被折叠?



