微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 硬件电路设计 > 硬件电路设计讨论 > 有没有可以压缩文件的IC?

有没有可以压缩文件的IC?

时间:12-12 整理:3721RD 点击:
大家新年好。
我现在有一些传感器网络产生的文本数据,需要通过手机网络上传到ftp服务器上存储。
出于节省带宽的考虑,希望能在上传之前将文本数据压缩。
如果限制文本文件的大小在几十KB比如50KB或者更小,有没有可能使用MCU比如STM32F4
采用deflate算法直接压缩?如果不行的话,有没有可以做数据流压缩的硬件?
多谢。

暂未听说过可以直接压缩数据流的商用IC。但是简单的流压缩似乎可以用FPGA搞。
可以用MCU来进行数据压缩,但需要自己移植压缩算法,并且评估内部RAM/频率是否够。

http://www.aha.com/data-compression/
这个可以用来压缩视频和图像,性能很可观,价格未知。但是对我的应用来说太大才小
用了。

fpga压缩吧。简单的一些算法。其实很繁琐

可以试试 LZO
http://www.oberhumer.com/opensource/lzo/
数据压缩对内存的要求比较高,STM32 内存太少只能使用些压缩率不太高的算法。

这个LZO看起来不错,250kb在老奔腾上面压缩只要1/20秒。

这个如果对实时性要求不高的话
可以用原来CPU处理,查一下算法的规范或论文能估算出RAM的用量
不行就考虑扩展一些RAM,来运行一些简单的压缩算法
这东西用FPGA或专用硬件会增加不少成本

今天做了进一步的研究。如果在嵌入式里面实现的话,LZW目前用的比较多。LZO从压缩速度,内存要求和压缩比来说的都差不多是最好的。但是LZO的许可比较麻烦,商用的话需要联系作者获得授权,但是很诡异是作者联系不上。

STM32高端些的型号应该有外部扩展总线的吧,挂一片SRAM,
内存应该差不多了吧,不过SRAM不便宜,得省着点儿用。

不知道lz要压的数据是啥样的?
如果有大量重复的数据,用RLE之类的简单算法就可以

下面是一段样本:
1:05:37         1       sensor#1        1       -16.4
2:05:37         2       sensor#2        2       -12.4
3:05:37         3       sensor#3        1       -13.8
4:05:37         4       sensor#4        2       -14
5:05:37         5       sensor#2        1       -17.5
6:05:37         1       sensor#1        2       -15.8
7:05:37         2       sensor#5        1       -14.6
8:05:37         3       sensor#3        2       -12.9
9:05:37         4       sensor#4        1       -17.1
10:05:37        5       sensor#2        2       -16.7
11:05:37        1       sensor#1        1       -16.2
12:05:37        2       sensor#5        2       -17.7
1:05:37         3       sensor#3        1       -13.3
2:05:37         4       sensor#4        2       -16.2
3:05:37         5       sensor#2        1       -17.2
4:05:37         1       sensor#1        2       -12.3
5:05:37         2       sensor#5        1       -17.5
6:05:37         3       sensor#3        2       -15.1
7:05:37         4       sensor#4        1       -16
8:05:37         5       sensor#2        2       -15.2
9:05:37         1       sensor#1        1       -12.2
10:05:37        2       sensor#5        2       -12.5
11:05:37        3       sensor#3        1       -12.8
12:05:37        4       sensor#4        2       -16.9
重复的部分主要是sensor id,实际中会设置成sensor#x或者某些个性化的名字,反复出
现在每个条目里面。然后是时间,以及传感器的值,绝大部分时候前两位都不会变化。
我用zip默认的defalte压缩了一下,可以压到1/7到1/8。RLE可能效果不会太好,因为连
续的值不多。

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top