硬汉嵌入式论坛

 找回密码
 立即注册
查看: 12871|回复: 48
收起左侧

[算法] 基于H7的无损压缩算法miniLZO移植,压缩率很高,20KB随机数压缩到638字节,耗时275us

  [复制链接]

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106660
QQ
发表于 2019-8-13 00:01:44 | 显示全部楼层 |阅读模式
说明:
1、miniLZO是采用C编写的无损压缩库。
2、提供了快速压缩和超快速解压缩能力。
3、比较耗内存,需要64KB内存用于压缩,对于H7这种大内存的,非常合适。或者有外置SRAM/SDRAM的也比较合适,相比内部RAM就是速度稍慢些。
4、用到数据压缩的场合非常多,像以太网,无线数据传输,USB数传,固件升级等场合,通数据压缩可以大大提升实际传输的数据量。
5、miniLZO地址:http://www.oberhumer.com/opensource/lzo/

工程模板:
基于H7的无损压缩算法miniLZO的移植和使用.rar (9.79MB)


用1KB到20KB的数据压缩测试:
QQ截图20220214230300.png

miniLZO的简介:
2019-08-12_235442.jpg



评分

参与人数 4金币 +54 收起 理由
suozhang + 20 赞一个!
yijinxiaoyou + 4 很给力!
在水一方 + 10 很给力!
byccc + 20 很给力!

查看全部评分

回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106660
QQ
 楼主| 发表于 2019-8-13 00:02:43 | 显示全部楼层
【技术贴】解读SEGGER最新一篇博文《适用于MCU的高效压缩算法,DEFLATE,LZMA,LZJU90,LZ4和SMCS的性能PK》
http://www.armbbs.cn/forum.php?mod=viewthread&tid=82448
回复

使用道具 举报

11

主题

30

回帖

63

积分

初级会员

积分
63
发表于 2019-8-13 08:54:46 | 显示全部楼层
这个是最大能压缩20k的数据吗?
回复

使用道具 举报

23

主题

1403

回帖

1472

积分

至尊会员

积分
1472
发表于 2019-8-13 08:56:04 | 显示全部楼层
马上下载测试下
代码不规范,亲人两行泪!
回复

使用道具 举报

36

主题

1445

回帖

1553

积分

至尊会员

积分
1553
发表于 2019-8-13 08:56:24 | 显示全部楼层
这个厉害,实用性很强。感谢老大的分享!
回复

使用道具 举报

36

主题

2039

回帖

2147

积分

至尊会员

积分
2147
发表于 2019-8-13 09:05:18 | 显示全部楼层
大赞
Ever tried. Ever failed. No matter. Try Again. Fail again. Fail better.
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106660
QQ
 楼主| 发表于 2019-8-13 09:13:39 | 显示全部楼层
晚上我试试图片的压缩效果。
回复

使用道具 举报

1

主题

71

回帖

74

积分

初级会员

积分
74
发表于 2019-9-11 11:11:15 | 显示全部楼层
用随机数填充 会出现 This block contains incompressible data.  
PC 平台
回复

使用道具 举报

39

主题

928

回帖

1050

积分

至尊会员

积分
1050
发表于 2019-9-11 12:40:06 | 显示全部楼层
mark
回复

使用道具 举报

0

主题

3

回帖

3

积分

新手上路

积分
3
发表于 2019-11-12 17:31:44 | 显示全部楼层
mark,看看能不能利用起来
回复

使用道具 举报

9

主题

103

回帖

130

积分

初级会员

积分
130
发表于 2020-1-14 18:30:59 | 显示全部楼层
生成的随机数应该有规律压缩率才有这么大。我在电脑上测试了一个bin文件  结果如下:
compressed 20480 bytes into 4424 bytes
decompressed 4424 bytes back into 20480 bytes
Press any key to continue . . .
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106660
QQ
 楼主| 发表于 2020-1-14 19:58:29 | 显示全部楼层
xy201207 发表于 2020-1-14 18:30
生成的随机数应该有规律压缩率才有这么大。我在电脑上测试了一个bin文件  结果如下:
compressed 20480 by ...

是的,周期性信号可以(重复的多些),其它的数据,性能一般。
回复

使用道具 举报

5

主题

201

回帖

216

积分

高级会员

积分
216
发表于 2020-1-15 11:30:56 | 显示全部楼层
这个我之前在stm32f407上面也跑过,压缩效果还挺好,速度也挺快。但是,这个要压缩、解压缩都用同样的算法。服务器那边的不想用,最后就放弃了。
回复

使用道具 举报

9

主题

38

回帖

65

积分

初级会员

积分
65
发表于 2020-3-1 12:46:26 | 显示全部楼层
我测试了压缩 7600字节的adc的数据,压缩后7136,效果不是很理想呀!
回复

使用道具 举报

9

主题

38

回帖

65

积分

初级会员

积分
65
发表于 2020-3-1 12:47:54 | 显示全部楼层
在429 上测试,压缩7K 多是adc 数据,压缩效果不是很理想,压缩了500多字节而已!不知道是不是配置错了
回复

使用道具 举报

9

主题

38

回帖

65

积分

初级会员

积分
65
发表于 2020-3-1 12:49:29 | 显示全部楼层
在429 上测试,压缩7K 多是adc 数据,压缩效果不是很理想,压缩了500多字节而已!不知道是不是配置错了?
回复了几次都发表不了。。。。。
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106660
QQ
 楼主| 发表于 2020-3-1 13:21:03 | 显示全部楼层
ice845930 发表于 2020-3-1 12:49
在429 上测试,压缩7K 多是adc 数据,压缩效果不是很理想,压缩了500多字节而已!不知道是不是配置错了?
...

只对周期性,重复比较多的时候效果才明显,其它效果一般。
回复

使用道具 举报

0

主题

3

回帖

3

积分

新手上路

积分
3
发表于 2020-3-9 14:47:23 | 显示全部楼层
根本就下不来!!!唉什么破网站
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106660
QQ
 楼主| 发表于 2020-3-9 15:18:43 | 显示全部楼层
liuxynzy2020 发表于 2020-3-9 14:47
根本就下不来!!!唉什么破网站

楼主位已经补腾讯云下载链接。
回复

使用道具 举报

14

主题

99

回帖

141

积分

初级会员

积分
141
发表于 2020-3-9 19:49:08 | 显示全部楼层
可以下载,谢谢~~~
回复

使用道具 举报

14

主题

99

回帖

141

积分

初级会员

积分
141
发表于 2020-3-13 08:31:32 | 显示全部楼层
这个压缩了,发送到电脑端怎么解压呢?
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106660
QQ
 楼主| 发表于 2020-3-13 10:03:41 | 显示全部楼层
LR215 发表于 2020-3-13 08:31
这个压缩了,发送到电脑端怎么解压呢?

这个不是电脑端用的。
回复

使用道具 举报

14

主题

99

回帖

141

积分

初级会员

积分
141
发表于 2020-3-13 14:20:07 | 显示全部楼层
eric2013 发表于 2020-3-13 10:03
这个不是电脑端用的。

有没有硬件压缩,然后电脑也有对应解压的呢?
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106660
QQ
 楼主| 发表于 2020-3-13 14:26:32 | 显示全部楼层
LR215 发表于 2020-3-13 14:20
有没有硬件压缩,然后电脑也有对应解压的呢?

暂时没有。
回复

使用道具 举报

3

主题

9

回帖

18

积分

新手上路

积分
18
发表于 2020-3-26 11:54:23 | 显示全部楼层
jpeg的压缩效果太不行了,图片大小为8484byte,压缩之后为8277byte
有针对于jpeg的压缩算法吗
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106660
QQ
 楼主| 发表于 2020-3-26 12:39:41 | 显示全部楼层
stm32开发 发表于 2020-3-26 11:54
jpeg的压缩效果太不行了,图片大小为8484byte,压缩之后为8277byte
有针对于jpeg的压缩算法吗

jpeg本身的压缩率已经比较高,这种压缩软件无能为力。
回复

使用道具 举报

0

主题

4

回帖

4

积分

新手上路

积分
4
发表于 2020-11-13 10:20:09 | 显示全部楼层
有在多任务的环境下测试过吗?为什么我这边测试,解压后的字节数比解压前的还要多? 1605233926(1).jpg
回复

使用道具 举报

0

主题

4

回帖

4

积分

新手上路

积分
4
发表于 2020-11-13 10:33:21 | 显示全部楼层
这个压缩算法有在操作系统,多任务的环境下试过吗? 为什么压缩出来的数据长度比压缩之前的长度还多
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106660
QQ
 楼主| 发表于 2020-11-13 15:59:07 | 显示全部楼层
lzh666 发表于 2020-11-13 10:33
这个压缩算法有在操作系统,多任务的环境下试过吗? 为什么压缩出来的数据长度比压缩之前的长度还多

你裸机测试,压缩同样的数据,结果是否一样
回复

使用道具 举报

0

主题

1

回帖

1

积分

新手上路

积分
1
发表于 2020-12-17 11:00:56 | 显示全部楼层
请问测试部分 要怎么读取电脑里的文件进行压缩呀?
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106660
QQ
 楼主| 发表于 2020-12-17 15:55:05 | 显示全部楼层
posylinnnn 发表于 2020-12-17 11:00
请问测试部分 要怎么读取电脑里的文件进行压缩呀?

我这个是在板子上面测试的。
回复

使用道具 举报

0

主题

1

回帖

1

积分

新手上路

积分
1
发表于 2021-7-5 17:57:39 | 显示全部楼层
lzh666 发表于 2020-11-13 10:20
有在多任务的环境下测试过吗?为什么我这边测试,解压后的字节数比解压前的还要多?

大哥解决了没?我这边使用FreeRtos,也有压缩后比压缩前大的情况。
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106660
QQ
 楼主| 发表于 2021-7-6 08:32:46 | 显示全部楼层
西子红叶 发表于 2021-7-5 17:57
大哥解决了没?我这边使用FreeRtos,也有压缩后比压缩前大的情况。

有些情况是的。

只有重复数据略多的时候才有效果。
回复

使用道具 举报

13

主题

191

回帖

230

积分

高级会员

积分
230
发表于 2021-7-27 14:55:11 | 显示全部楼层
今天试了一下,设备截图后压缩,750K一个图,最好压缩到70K,最差压缩到220K,压缩速度很快,平均60ms左右。基本满足需求,平台是FreeRTOS + TouchGFX,感觉多任务下没有影响。
回复

使用道具 举报

0

主题

20

回帖

20

积分

新手上路

积分
20
发表于 2021-11-16 15:35:05 | 显示全部楼层
这个像视频类的数据能压缩吗
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106660
QQ
 楼主| 发表于 2021-11-16 15:55:03 | 显示全部楼层
ARM2010 发表于 2021-11-16 15:35
这个像视频类的数据能压缩吗

可以试试,这个要以实际测试为准。
回复

使用道具 举报

2

主题

11

回帖

17

积分

新手上路

积分
17
发表于 2021-11-22 15:25:32 | 显示全部楼层
lzh666 发表于 2020-11-13 10:20
有在多任务的环境下测试过吗?为什么我这边测试,解压后的字节数比解压前的还要多?

你好,请问你问题解决了吗?
我用的是IAR,跑的FreeRTOS,也是压缩后的字节比压缩前的字节还要多,然后解压时报错“有未解压的数据”
我看示例用的是MDK,是不是IAR需要特殊配置?
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106660
QQ
 楼主| 发表于 2021-11-22 16:16:24 | 显示全部楼层
achao89 发表于 2021-11-22 15:25
你好,请问你问题解决了吗?
我用的是IAR,跑的FreeRTOS,也是压缩后的字节比压缩前的字节还要多,然后 ...

IAR一样的。
回复

使用道具 举报

73

主题

1193

回帖

1412

积分

至尊会员

积分
1412
发表于 2022-9-6 15:15:24 | 显示全部楼层
本帖最后由 wdliming 于 2022-9-6 15:51 编辑

硬汉你好,这个压缩软件,可否运行在windows平台,另外解压缩真的不需要内存吗??
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106660
QQ
 楼主| 发表于 2022-9-7 01:48:44 | 显示全部楼层
wdliming 发表于 2022-9-6 15:15
硬汉你好,这个压缩软件,可否运行在windows平台,另外解压缩真的不需要内存吗??

解压需求很小,可以用在PC
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|小黑屋|Archiver|手机版|硬汉嵌入式论坛

GMT+8, 2024-4-29 06:11 , Processed in 0.315779 second(s), 29 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

快速回复 返回顶部 返回列表