搜索
查看: 2525|回复: 4

[分享] TouchGFX大更新!可缓存容器支持从9 FPS到60 FPS的刷新率,还...

[复制链接]

该用户从未签到

1492

主题

2703

帖子

0

蝴蝶豆

管理员

最后登录
2021-5-11
发表于 2019-11-11 14:36:11 | 显示全部楼层 |阅读模式
TouchGFX大更新!可缓存容器支持从9 FPS到60 FPS的刷新率,还有更多

N E W   A R R I V A L——TouchGFX 4.12

我们免费的图形化用户界面工具——TouchGFX,在其图形引擎和设计工具中,迎来了重大的升级。TouchGFX 4.12带来了:可缓存容器,支持局部缓存,和L8图形压缩格式,这些都将会给STM32微控制性能带来更高的提升。当嵌入式系统继续深入主流市场,加上目前的显示屏和高效的图形用户界面都将大大的提升用户体验。这解释了为什么很多报告都显示越来越多的嵌入式系统工程师现在都需要和GUI打交道。还有业界也在尝试去适应MCU紧凑的计算吞吐量。TouchGFX Designer是我们基于MCU的桌面GUI设计工具,其高效的图形算法引擎可以大大帮助开发高端的图形应用,同时减少对C++的依赖。


TouchGFX 4.12是一个很有象征性的版本,因为在2018年被ST收购,成为ST生态中重要的一员后,这是第一次重大的升级。其中一个在MCU背后驱使的宗旨就是提供更好的性能,以及更多附加性能。这也是为什么我们很高兴使用类似QT以及其他当前类似的著名GUI工具在我们的MCU上运行。不管怎样,我们都很高兴对TouchGFX带来具有重大意义的升级。我们会继续在这个方案上带来更专业和免费的强大工具给到用户。目前采用TouchGFX的可能大部分都是穿戴和家电上的用户。在将来,我们期待STM32开发者会不断地将TouchGFX涉及到更多领域。

可缓存容器
重新思考如何渲染一个缓存

可缓存容器是TouchGFXteam新增加的一个功能。就如其名, 可使用一张位图缓存来提高图形,并通过提高刷帧率来达到更好性能的目的。下面这个视频基于STM32F429I Discovery板。这是没有可缓存容器的例程,支持全屏(240*320)动画,刷帧率为9FPS。在使用了新的TouchGFX技术后,可以达到60fps,让动画变得更流畅。在目前的一些智能手表上使用这个功能,在硬件的限制下,可以达到更好的效果以及延长电池使用时间。在一些需要使用复杂动画的部分,如纹理映射,或将小的动画元素显示在一个静态背景上,都可以达到性能最大化。


在传统的系统上,一些动画需要系统对缓存重画,并且需要复杂的运算,也有一些动画需要两个图层,并且可能需要20帧,然而每一帧都需要100ms重画。可缓存容器就可以避免这个问题,只需要在RAM里独立保存第一帧和最后一帧。系统就会用简单的动态位图方法,和DMA对两张图的传输,来代替计算动画。MCU不再需要重刷每帧,这可以显著提升性能。研发人员只需要在TouchGFXDesigner上选中Cacheable box,在那些被你选中的容器中,重刷的时间从100ms可以降到5ms。

局部缓存
最佳优化存储缓存

11.jpg

局部缓存是另外一种已被验证过拥有良好效果的技术。一个缓存帧就是一段连续的存储空间。例如,一个标准390*390@24-bit智能穿戴图片的大小是3,650,400 bits 或440 KB,这几乎是L4+在智能手表和穿戴应用中 70%的SRAM容量。如果在一个需要两帧或三帧的应用中,这个问题会更加凸显。为了超出这个局限性,可以使用一个大的缓存来取得更多的数据,但是这样会减低性能。
顾名思义,局部缓存就是仅存储局部的缓存内容,开发者可以在相应的地方配置缓存大小,以存储多个局部缓存。TouchGFX引擎会选择最合适的缓存,然后显示在屏上。因此,代替取得完整缓存的方法,这可以让系统使用更小的文件,从而增加整个系统的性能。这个技术在一些小的动画中尤为突出,例如时钟或者图表需要自我更新的时候。这也同样支持那些自带控制器,能够直接接收MCU RAM中局部缓存的数据,如并口/8080,DSI和SPI显示屏。

22.jpg

直到现在图片资源占据大量存储资源,开发者只能降低清晰度来减少缓存大小。不幸运的是很少有这样的用户接口。L8是独特的有显著压缩效果的一种压缩算法,通过高级的ChromART 加速器来实现。只要该资源少于256种颜色,一般是在背景颜色、图表或者按键在一个小嵌入式设备中,研发者可以在TouchGFXDesigner中选取L8格式,来选择压缩。这系统产出的图最大能节省75%。高效解压的步骤是通过ChromART引擎在查表形式来还原各种真实的颜色,以保不失真。

TouchGFX Designer同样也带来了其他令人兴奋的升级。有新的功能还有新的控件,例如电子钟、纹理映射。同时开发者也可以创建自己的程序。虽然这要求用户有入门级的C++能力,但它可以带来更好的性能。这个工具也支持添加的用户触发源和动作。这样就算开发者没有编程能力也可以测试和实验。TouchGFX Designer现在生成和读取系统都比以前快两倍,这也大大提升了研发人员的体验感受。

PS: STM32用户还可一如既往免费使用STemWIN

TouchGFX完整包,包括TouchGFX Designer和TouchGFX Engine,现可以从http://www.st.com/touchgfxdesigner下载。



回复

使用道具 举报

该用户从未签到

5

主题

613

帖子

138

蝴蝶豆

金牌会员

最后登录
2022-5-19
发表于 2019-11-12 11:42:09 | 显示全部楼层
FPS 应是 Frames Per Second的缩写,多少帧 每秒
回复 支持 1 反对 0

使用道具 举报

该用户从未签到

12

主题

1392

帖子

45

蝴蝶豆

金牌会员

最后登录
2021-8-25
发表于 2019-11-11 17:15:52 | 显示全部楼层
FPS嘛意思
回复

使用道具 举报

该用户从未签到

43

主题

296

帖子

38

蝴蝶豆

金牌会员

最后登录
2022-3-31
发表于 2019-11-15 13:10:53 | 显示全部楼层
没有与代码IDE整合,使用不友好。屏幕支持上只能是指定的那几个,不好买,成本高。
回复 支持 反对

使用道具 举报

该用户从未签到

14

主题

100

帖子

45

蝴蝶豆

高级会员

最后登录
2021-4-12
发表于 2019-11-20 18:00:12 | 显示全部楼层
可以提供一些FLASH的烧写算法嘛,程序我可以移植,这个算法是真难啊  
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 注册/登录

本版积分规则

关闭

站长推荐上一条 /3 下一条

Archiver|手机版|小黑屋|论坛-意法半导体STM32/STM8技术社区

GMT+8, 2024-4-25 18:41 , Processed in 0.199972 second(s), 41 queries .

Powered by Discuz! X3.4

Copyright © 2001-2024, Tencent Cloud.

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