OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 9924|回复: 12

Jpeg解码显示好慢啊,帮忙分析下原因和解决办法吧?

[复制链接]

28

主题

125

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
260
金钱
260
注册时间
2013-4-14
在线时间
1 小时
发表于 2014-8-14 16:00:58 | 显示全部楼层 |阅读模式
5金钱
RT,stm32f103zet6    72Mhz   图片存在SPI flash W25X16中,屏幕是480*600的  SSD1963 驱动的

显示一个579*604像素(原子哥的jpeg解码程序直接调整大小,适应屏幕了)

可以看出来是一块一块刷的,刷完整个屏幕需要5S的时间。        


后来换了smt32f207zet6    120Mhz   其他硬件配置一样的,需要2S的时间。 SPI flash的SPI外设速率已经设置到最大103是2分频,207是4分频。

最佳答案

查看完整内容[请看2#楼]

STM32解码JPEG,尺寸一大,肯定卡的. 又不是电脑,就算F4,解码一个320*240的图片,我测试最快速度是53ms左右. 你的jpeg那么大,速度更慢. 建议以空间换时间的方式.
我可以一辈子都呆在家里不出来么?
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165540
金钱
165540
注册时间
2010-12-1
在线时间
2117 小时
发表于 2014-8-14 16:00:59 | 显示全部楼层
STM32解码JPEG,尺寸一大,肯定卡的.
又不是电脑,就算F4,解码一个320*240的图片,我测试最快速度是53ms左右. 你的jpeg那么大,速度更慢.
建议以空间换时间的方式.
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165540
金钱
165540
注册时间
2010-12-1
在线时间
2117 小时
发表于 2014-8-14 16:00:59 | 显示全部楼层
回复【7楼】杨帆:
---------------------------------
JPEG解码是预先做的,也就是刷机的时候做的处理,到客户手里,就直接从SPI FLASH读图片数据了
这样还不能达到你要求,那就换其他方案吧.
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复

使用道具 举报

28

主题

125

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
260
金钱
260
注册时间
2013-4-14
在线时间
1 小时
 楼主| 发表于 2014-8-14 16:05:24 | 显示全部楼层
整个jpeg文件大小是70K
 领导本来设计是打算,把界面用到的图片资源都放在外部flash中,根据操作实时使用,做出丰富多彩的界面。
 他原来是把图片做成PIC文件的形式,直接KEIL编译到 flash中的,速度是可以,但是一方面flash不够要加flash,另一方面,种种PIC格式的文件显示也不够清晰。。

打算到时候更新固件的话,直接把更新固件的文件夹放在flash中,这样所有的界面就都可以更新了。
现在这样,显示一幅背景都要2S,怎么能行啊,,裸机没系统
我可以一辈子都呆在家里不出来么?
回复

使用道具 举报

28

主题

125

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
260
金钱
260
注册时间
2013-4-14
在线时间
1 小时
 楼主| 发表于 2014-8-14 16:10:12 | 显示全部楼层
同样的图片我直接放在开发板上显示,也是需要刷新好久
 原子哥,我看你的综合例子中用到的图标等文件,都是BMP格式,背景是jpeg的,好像没怎么卡顿?
可能一方面,我的屏比较大,请教您一下,如何改善现在这种状况么? 

 领导让我测试以下,JPEG显示的过程中,哪部分最耗时间:  SPI flash中读内存?jpeg解码?LCD显示
可是jpeg解码的程序比较大,也有点复杂,测也不好测啊。
我可以一辈子都呆在家里不出来么?
回复

使用道具 举报

28

主题

125

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
260
金钱
260
注册时间
2013-4-14
在线时间
1 小时
 楼主| 发表于 2014-8-14 16:12:33 | 显示全部楼层
原子哥,我看论坛上说stm32f4 已经可以看电影了。。。。
 我如果用f4的话,解码显示会不会变流畅啊。。。。
 不过现在我解码大尺寸的jpeg会有延迟,但是解码的gif图片很顺畅。
我可以一辈子都呆在家里不出来么?
回复

使用道具 举报

14

主题

490

帖子

1

精华

金牌会员

Rank: 6Rank: 6

积分
1229
金钱
1229
注册时间
2012-8-4
在线时间
248 小时
发表于 2014-8-14 21:10:28 | 显示全部楼层
换flash( W25X32)芯片,bmp图片格式,试试
nrf51822蓝牙4.0手环开发板: 淘宝小店
回复

使用道具 举报

28

主题

125

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
260
金钱
260
注册时间
2013-4-14
在线时间
1 小时
 楼主| 发表于 2014-8-15 09:32:51 | 显示全部楼层
回复【6楼】正点原子:
---------------------------------
原子哥,看来这种显示方案是不行了吧?
640x480的屏幕还是太大,加上从SPI flash中读取数据  和 jpeg解码用掉的时间,做不出流畅界面了。

原子哥有什么建议么?  
已经有一个方案了,直接用平板做显示的部分,主板只做控制的部分。

只是领导还是希望可以也把主板直接显示的东西做出来用。
我可以一辈子都呆在家里不出来么?
回复

使用道具 举报

27

主题

154

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
280
金钱
280
注册时间
2013-8-28
在线时间
2 小时
发表于 2014-11-3 15:57:46 | 显示全部楼层
回复【6楼】正点原子:
---------------------------------
你说的这个以空间换时间。     意思是把图片的颜色数据写到STM32的FLASH里吗?   这样显示的时候直接把颜色显示上去?

你战舰的综合实验是怎么处理的?   点开一个应用,一个界面怎么快速加载?

刷一个320*240的 BMP,JPG图片都是明显的慢,接受不了呀。
回复

使用道具 举报

233

主题

961

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1815
金钱
1815
注册时间
2011-10-9
在线时间
230 小时
发表于 2014-11-3 16:21:57 | 显示全部楼层
空间换时间  把图片预先从flash读取到内存(显存) 然后直接dma到屏幕

另外 图片不采用jpg形式  直接采用bmp2lcd 解成数据形式存flash。 反正你用来做界面,没啥所谓了

用的时候  flash==>>RAM==dma==>屏幕
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165540
金钱
165540
注册时间
2010-12-1
在线时间
2117 小时
发表于 2014-11-3 17:57:06 | 显示全部楼层
回复【9楼】正点圆子:
---------------------------------
是的,存放在flash,然后直接DMA ,FLASH-->LCD
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复

使用道具 举报

0

主题

1

帖子

0

精华

新手入门

积分
21
金钱
21
注册时间
2015-7-21
在线时间
0 小时
发表于 2015-7-21 13:05:44 | 显示全部楼层
我的F103解码也比较慢,320x240的差不多都要2秒钟,从串口打印出的开窗大小看,图像是小块(16*16)输出的, 
之前怀疑是output 显示慢,后来把outpu函数里面注释掉,只留return JDR_OK ,运行jd_decomp函数还是2秒左右,
原子哥说F4能做到53ms,后来移植到F4,也是把outpu函数里面注释掉,只留return JDR_OK ,运行jd_decomp函数还是1秒左右,不知道大家是否和我的情况一样。
回复

使用道具 举报

5

主题

17

帖子

0

精华

初级会员

Rank: 2

积分
85
金钱
85
注册时间
2015-7-9
在线时间
6 小时
发表于 2015-11-13 10:52:10 | 显示全部楼层
回复【12楼】liweijin66:
---------------------------------
我的也是要2S多,我就是在原来从SD卡读取图片解码基础上,不从SD读,而是直接用winhex将图片的数据提取出来存放到FLASH,然后读取解码输出,竟然比SD卡读还慢,光解码就需要2.3秒,原来从SD卡读解码显示才0.5S。
回复

使用道具 举报

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

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-6-20 02:48

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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