xld826 发表于 2015-4-13 10:16:28

STM32移植 MINI LZO 2.09算法

来个简介:
LZO 库实现了许多有下述特点的算法:
* 解压简单,速度非常快。
* 解压不需要内存。
* 压缩相当地快。
* 压缩需要 64 kB 的内存。
* 允许在压缩部分以损失压缩速度为代价提高压缩率,解压速度不会降低。
* 包括生成预先压缩数据的压缩级别,这样可以得到相当有竞争力的压缩比。
* 另外还有一个只需要 8 kB 内存的压缩级别。
* 算法是线程安全的。
* 算法是无损的。
LZO 支持重复压缩以及原地解压。
LZO 是块压缩算法——压缩解压成块的数据。压缩与解压所用块的大小必须一样。
LZO 将数据块压缩成匹配数据(滑动字典)与非匹配文字的序列。LZO 对于较长的匹配数据以及较长的非匹配文字序列有专门的处理,这样对于高度冗余的数据能够取得很好的效果,并且对于不可压缩的数据也能得到可以接受的效果。
当处理不可压缩数据的时候,LZO 将每个 1024 字节的输入数据块扩展 16 字节。
据报道 LZO 也在 AIX、 ConvexOS、IRIX、Mac OS、Palm OS、 PS1(PlayStation)、Solaris、SunOS、TOS (Atari ST) 以及 VxWorks 上得到实现。


STM32 移植算法,MINI LZO 2.09源码见附件



附上调试结果

xld826 发表于 2015-4-13 10:18:01

沙发自己坐坐,能火吗??{:lol:}{:lol:}

xld826 发表于 2015-4-13 10:21:58

源码地址http://www.oberhumer.com/opensource/lzo/

Eric2013 发表于 2015-4-13 10:30:38

绝对好东西,强力顶起楼主{:victory:},已经收下,准备研究研究

xld826 发表于 2015-4-13 10:37:21

Eric2013 发表于 2015-4-13 10:30
绝对好东西,强力顶起楼主,已经收下,准备研究研究

提高数据传输速率还是比较好的

Eric2013 发表于 2015-4-13 10:41:11

xld826 发表于 2015-4-13 10:37
提高数据传输速率还是比较好的

请教楼主,这个的压缩率能搞到多少,在官方地址上面没有看到。

xld826 发表于 2015-4-13 10:50:28

Eric2013 发表于 2015-4-13 10:41
请教楼主,这个的压缩率能搞到多少,在官方地址上面没有看到。

这个没有具体说明,要看你数据复杂度。

xld826 发表于 2015-4-13 10:51:25

Eric2013 发表于 2015-4-13 10:41
请教楼主,这个的压缩率能搞到多少,在官方地址上面没有看到。

以下是Google几年前发布的一组测试数据(数据有些老了,有人近期做过测试的话希望能共享出来):
Algorithm        % remaining        Encoding        Decoding
GZIP        13.4%        21 MB/s        118 MB/s
LZO        20.5%        135 MB/s        410 MB/s
Zippy/Snappy        22.2%        172 MB/s        409 MB/s

Eric2013 发表于 2015-4-13 10:54:31

xld826 发表于 2015-4-13 10:51
以下是Google几年前发布的一组测试数据(数据有些老了,有人近期做过测试的话希望能共享出来):
Algorit ...

非常感谢{:handshake:}

lou0908 发表于 2015-4-13 14:35:43

这个要看数据的,我以前移植过,一般能到原来的60%左右

videofun 发表于 2015-5-17 01:12:36

支持,有空学习下

金色大元宝 发表于 2015-5-17 06:18:16

好东西,下下来学习学习

talkingbeast 发表于 2016-1-8 14:00:52

谢谢分享。

jiaowoxiaolu 发表于 2016-1-8 14:15:33

不错                           

changxiaoqing11 发表于 2016-1-8 14:28:07

需要64k内存stm32够用吗

308594151 发表于 2016-1-8 14:41:03

mark一下

xld826 发表于 2016-1-8 15:20:02

changxiaoqing11 发表于 2016-1-8 14:28
需要64k内存stm32够用吗

STM32 E版本够的,具体需要多大没计算

sjh18256 发表于 2016-1-8 16:38:53

支持下,回来试下。

windancerhxw 发表于 2016-1-9 23:45:03

{:handshake:}顶一个,多谢分享了

mega1702 发表于 2016-1-11 22:47:42

谢谢楼主分享!!!

njjh1718 发表于 2016-1-12 07:56:03

好东西楼主做的不错用心的资料

okplay 发表于 2016-1-12 10:35:11

楼主也可以试试lz4 压缩/解压缩速度更快。

xld826 发表于 2016-1-12 15:51:46

okplay 发表于 2016-1-12 10:35
楼主也可以试试lz4 压缩/解压缩速度更快。

确实不错,感谢分享!

cwei 发表于 2016-7-27 11:21:20

这个在室外长通讯很合适,减少传输数据量

myxiaonia 发表于 2016-7-27 12:01:08

不知道楼主有没有使用过,对其是否了解

解压内存有没有限制,真有8k内存的选项?

honami520 发表于 2016-7-27 13:24:29

像这样的资料,还是很有价值的。赞一个

yanghuanchun 发表于 2018-8-23 08:49:52

最近要使用,非常感谢楼主

huangguimina4 发表于 2018-8-23 08:52:50

还不知道这东西在STM32上能拿来干嘛的,哈哈哈,谢谢楼主

闲情三昧 发表于 2018-8-23 11:46:09

正在寻找单片机相关的压缩算法,谢谢楼主

carefree1986 发表于 2018-8-23 17:56:15

好东西,赞一个!!!

leiyitan 发表于 2018-8-24 07:36:05

感谢楼主分享,太给力了

shijy1977 发表于 2018-9-7 16:18:54


感谢楼主分享,太给力了

advarx21ic 发表于 2018-9-7 21:35:43

能够解压标准的PC生成的ZIP文件吗?

pchf005 发表于 2018-9-8 09:33:57

牛B啊,好好学习

小溪 发表于 2018-9-11 10:47:21

好资料,学习一下

yinian 发表于 2018-9-11 22:34:40

算法的研究,谢谢提供的资料

honami520 发表于 2018-9-27 19:57:27

老兄,你这个解压缩你知道咋整吗?
你的例子我都跑通了。但是你这个有问题啊。
你是压缩几K的内容,然后变成N字节。然后你再把这N字节解压缩。

如果你是要压缩几MB的文件呢,那就只能一次压缩几K,分段压缩最后生成一个NK的文件。
这个NK的文件,你要解压缩你怎么解压。你根本不知道一次取多少字节了。

xld826 发表于 2018-9-27 22:13:25

honami520 发表于 2018-9-27 19:57
老兄,你这个解压缩你知道咋整吗?
你的例子我都跑通了。但是你这个有问题啊。
你是压缩几K的内容,然后变 ...

大兄弟,解压缩API接口的实参必须是已知长度。你的应用没考虑过。

honami520 发表于 2018-9-27 22:38:50

那就糟糕了。也就是说这个玩意编码、解码,都是只能1个包来操作了。不好玩啊,如果很大的文件压缩、解压缩怎么处理呢?

boboo 发表于 2018-9-28 02:57:33

honami520 发表于 2018-9-27 22:38
那就糟糕了。也就是说这个玩意编码、解码,都是只能1个包来操作了。不好玩啊,如果很大的文件压缩、解压缩 ...

难道如果你有1m的数据,你要用至少1m的内存来放压缩数据?那来个1.1m的你不是要升级到2m的内存才行?

qmsolo2004 发表于 2018-9-28 17:33:35

好东西,赞一个!!!

xu84404351 发表于 2019-3-7 18:33:12


好东西,赞一个!!!

zhangxwnoah 发表于 2019-3-9 10:21:35

压缩算法,减少数据传输量

gzhua20088ssj 发表于 2019-11-1 16:10:56

压缩算法不错,试试看看

zhzj2007 发表于 2019-11-1 17:22:17

压缩算法学习来了

jaky80000 发表于 2019-11-2 09:36:27

好东西,太给力了,谢谢!

mcu005 发表于 2020-3-6 15:35:03

这个工程测试了一下,还是不错的

http://www.embed-net.com/thread-192-1-1.html

amxx 发表于 2020-3-6 16:42:50

留个爪,说不定能用到这种压缩算法

ronic 发表于 2020-3-6 17:30:27

这个必须试试

ronic 发表于 2020-3-6 17:30:27

这个必须试试

wq_601840968 发表于 2023-11-23 17:38:18

这个支持对文件夹进行 压缩、解压吗
页: [1]
查看完整版本: STM32移植 MINI LZO 2.09算法