最近在做红外矩阵数据处理的项目,为了训练算法把0.1s为周期的温度原始值(1byte整数,1bytebyte小数0.25精度)通过串口读回上位机存储以备调用,两个小时采集到的数据以txt格式存储达到了40M大小,手贱用rar压缩了一下,3.2M!!!,为了传输这40M的数据更改了工具的波特率和buffer,这样就和公司老产品不兼容了,如果STM32上能实现类似rar的数据压缩算法,岂不爽哉? |
æ件å缩åå大å°å¯¹æ¯
ä¼ è¾å 容 â0Xâåç©ºæ ¼ç³»äººä¸ºæ·»å
嗯,这个是文本压缩的。我这边stm32做的解压缩,文件不大,100kb内的源文件,4、5倍的压缩率,解压缩几乎不耗时间。文件大了就不知道了。
上位机不太在乎这点空间,主要是单片机串口传输吃紧,传输速度跟不上刷新速度,又想兼容公司以前产品,不去修改传输工具的波特率和buffer。
你尝试过吗?因为跑Linux的都是主频上G的,ST的就是100M,或者180M,是不是时间会长很多呢?这个压缩算法主要用来压缩什么的,是不是主要是对文件进行压缩?
http://www.quicklz.com/index.php
没有,把数据通过串口发送到上位机保存的,问题就在数据量有些大,串口传输跟不上刷新速度,所以想压缩一下再传输。
果然有神器,导入验证一下,谢谢!
呃呃。压缩比较耗资源。我这边用的是stm32来解压缩,上位机3级压缩。
你好,请问下,quicklz。 是用来做什么的
你百度一下就知道了,压缩与解压缩。
QuickLZ 是一个号称世界压缩速度最快的压缩库,并且也是个开源的压缩库,其遵守 GPL 1, 2 或 3协议。
这个压缩裤,也能在STM32上跑吗?都是在linux下运行的
可以的。都不需要改东西,直接加入工程里面就可以了。
也就说说,你没有用文件系统吗?而是直接保存数据,那么这个压缩库,主要是压缩文本,其他的做不了?