如何加快图片显示速度?

[复制链接]
6627|17
 楼主| dsoyy 发表于 2008-11-30 12:36 | 显示全部楼层 |阅读模式
SMARTARM2200开发板用TFT4267在现实图片的时候有明显的刷新过程,优化了下代码速度提高很大,仍然可看到刷新过程,无法满足产品需求。这个主要是主频的原因,我如何能利用现有资源(2200)实现图片的瞬间(客户可以接受)切换,或者增添些硬件等等。<br /><br />请大家赐教!
biehoff 发表于 2008-11-30 19:15 | 显示全部楼层

RE

我用44b0x也遇到过类似问题&nbsp;&nbsp;不过解决了<br />不知道你那个TFT的显示原理是怎样的?
 楼主| dsoyy 发表于 2008-12-1 14:55 | 显示全部楼层

~

请问你是怎么解决的?能详细的说明吗?不胜感激
 楼主| dsoyy 发表于 2008-12-3 09:45 | 显示全部楼层

顶起

顶i
biehoff 发表于 2008-12-3 17:10 | 显示全部楼层

RE

跟你说了我是三星的44b0&nbsp;带的STN的液晶屏&nbsp;貌似比你那个要低级<br />不知道我的办法对你有效果没<br /><br />首先&nbsp;&nbsp;我的液晶屏驱动程序功能是<br />&nbsp;&nbsp;&nbsp;设定好相关参数&nbsp;然后&nbsp;把图像数据的(一个数组)的首地址传给液晶驱动的某个相关寄存器<br />&nbsp;&nbsp;&nbsp;我是640*480的液晶&nbsp;&nbsp;一个点像素是一个字节&nbsp;<br />所以就定义了一个数组&nbsp;lcd_data[480][640]<br />这个就是要显示的图像数据&nbsp;&nbsp;这个数组的地址,大小传给LCD控制寄存器<br /><br />如果你想换副图像&nbsp;那么就要把新的数据写到这个数组中去&nbsp;去覆盖原来的数据<br />用C写好覆盖程序后&nbsp;&nbsp;运行起来&nbsp;明显可以看到刷新的过程&nbsp;&nbsp;所以效果不好<br />这个大概就是你说的问题吧<br /><br />解决办法<br />用分散加载&nbsp;&nbsp;把那个覆盖程序&nbsp;&nbsp;COPY到&nbsp;RAM中去执行<br />还要再快的话&nbsp;&nbsp;那个覆盖程序&nbsp;用汇编写&nbsp;&nbsp;确实比C快多了<br /><br />如果你还要快的话&nbsp;&nbsp;那不如切换&nbsp;数组地址了<br />比如说&nbsp;图像一&nbsp;是放在&nbsp;lcd_data1[]<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;图像二&nbsp;放在&nbsp;&nbsp;&nbsp;lcd_data2[]<br />如果当前显示的是图像一<br />切换最快&nbsp;&nbsp;把LCD控制寄存器中的&nbsp;数组地址&nbsp;设置改成图像二(lcd_data2[])就可以了&nbsp;瞬间切换哦&nbsp;&nbsp;&nbsp;<br /><br />我这是ARM7&nbsp;带&nbsp;STN的&nbsp;办法<br />对口的话你就试试&nbsp;&nbsp;不对口你就当看小说了&nbsp;&nbsp;<br />我是菜鸟····说错了的话表拍我砖
xwj 发表于 2008-12-3 17:48 | 显示全部楼层

LS,LZ的情况和你的不同,他那个屏控制器在屏上

不过呢,<br />分辨率很低啊,就算全刷一边也要不了多少mS的,估计还是LZ的程序设计得有问题哦
biehoff 发表于 2008-12-3 18:28 | 显示全部楼层

re

哦···我帮不上&nbsp;<br />你还是等用过TFT的高人帮你看看吧
seekfor 发表于 2008-12-5 17:33 | 显示全部楼层

直接写VIDEO RAM肯定会看到过程

2410支持双缓冲,可以通过写不在当前显示的那个VIDEO&nbsp;RAM,然后flip出来
SYJ_SUN 发表于 2008-12-7 21:36 | 显示全部楼层

xwj,你从哪里得到我女儿照片的?我希望有个合理的解释.

  
xwj 发表于 2008-12-7 21:37 | 显示全部楼层

呵呵,看这里:

先看懂再说 <br /> 相关链接:<a href='http://www.21icbbs.com/club/bbs/list.asp?boardid=17&page=1&t=3170342&tp=%u54C8%u54C8%u54C8....%20%u53D1%u73B0%u4E00%u5F20%u4E0D%u9519%u7684%u56FE%u7247%uFF0C%u5927%u5BB6%u6765%u8BC4%u4EF7%u8BC4%u4EF7%u5427%3A-%29'>http://www.21icbbs.com/club/bbs/list.asp?boardid=17&page=1&t=3170342&tp=%u54C8%u54C8%u54C8....%20%u53D1%u73B0%u4E00%u5F20%u4E0D%u9519%u7684%u56FE%u7247%uFF0C%u5927%u5BB6%u6765%u8BC4%u4EF7%u8BC4%u4EF7%u5427%3A-%29</a>
SYJ_SUN 发表于 2008-12-7 22:03 | 显示全部楼层

不好意思,受骗了!我还以为我的电脑被入侵了.

  
mxh0506 发表于 2008-12-7 23:15 | 显示全部楼层

LZ需要了解最基本的防闪烁巧

很多GUI编程的书里都有涉及
 楼主| dsoyy 发表于 2008-12-11 15:05 | 显示全部楼层

几天没来,好多热心人帮助我

5楼非常热心,方法对我而言很新颖,学习。<br />我的打算:<br />我目前操作方式是逐点扫描(屏无BUF),如果处理LCDBUF会很快,而且如果我选屏采用双BUF的会得到大幅提升。<br /><br /><br />winfeng,给我提议:在内存里建一个TFTLCD&nbsp;BUF&nbsp;镜像显存,GUI的算法操作镜像显存,操作完成后再把显存&nbsp;copy到&nbsp;LCD&nbsp;的BUF。<br /><br />感觉也很好!<br /><br />
icecut 发表于 2008-12-11 23:14 | 显示全部楼层

呵呵,

闪烁是算法问题.<br /><br />不是屏幕&nbsp;问题.<br />其实pc的显示屏也会闪的.<br /><br />微软做的叫memdc,然后拷贝到DC<br />就不再闪烁了<br /><br />
 楼主| dsoyy 发表于 2008-12-12 09:34 | 显示全部楼层

我的问题是刷屏慢

过程明显,以打点方式来显示的。
dld2 发表于 2008-12-12 09:52 | 显示全部楼层

lz的问题主要是接口慢

软件优化的提升有限。<br />如果不修改硬件,感觉没戏。
andyzhenyu 发表于 2008-12-13 16:09 | 显示全部楼层

给点意见

增加图像数据接口位宽,增加缓冲RAM,开启垂直同步。三个都作到了,保证你不慢也不闪。
twicave 发表于 2009-3-3 16:42 | 显示全部楼层

100M总线,ARM9刷屏,640*480*16Bits速度

你们最快可以刷多少Hz?<br />我这里最快只有100Hz多一点,似乎有点慢了.
您需要登录后才可以回帖 登录 | 注册

本版积分规则

144

主题

566

帖子

3

粉丝
快速回复 在线客服 返回列表 返回顶部