客户在使用 TouchGFX开发 GUI应用的时候, 需要很多的图片资源来呈现友好的人机交互功能, 因此外扩了一个 FLASH来存储图片资源. 在软件研发后期发现现有的 FLASH存储空间不够, 因此提出是否可以使用 TouchGFX来减少图片资源的存储空间且实现同样的 UI效果.9 @: ?/ Y# w) P _ 01调研 - R( l- [% ^* [ ; k7 e3 y1 S- Z/ f' i, d # 在硬件方面 MCU 的图像处理加速器DMA2D 中的调色板的颜色格式 , 支持 L8 格式的图层之间的渲染:$ K. W7 \$ O" D7 s* i2 s- z
0 g1 D# e6 R3 W' ~ # 从软件方面 最新的 TouchGFX4.12.3 开始, 可以利用了 DMA2D 的调色板功能对图片的资源进行优化 .2 O- t$ m2 m( q: ` # 比如下图(宽 x 高=200x200) . d& s' J/ o5 Z5 N 1. 这幅图是由 256 种颜色组成的. 2. 且每种颜色都针对图像进行了优化.$ a5 P2 ~6 N4 \9 V4 k 3. 256 种索引颜色中的每一种都是 24 位颜色.
为了在 LCD 上显示这张图, TouchGFX Designer 在生成资源文件时,生成的资源文件大小:7 E6 V$ @; @0 t# H8 @ 1. L8_ARGB8888 : 200x200x1byte+256x4byte=41024bytes =>200x200 个 8bit 的颜色索引+256 个 32bit5 {! [) I8 ~& n% @, k6 o
2. ARGB8888 : 200x200x4byte=160000bytes. =>200x200 个 32bit 的颜色6 J6 s6 e* H9 \$ Y; j9 S 1 F- t) T! c( J; e2 n; q0 j 在 TouchGFX 中使用 L8 Image ,只需要将 L8 的图片拖入到 TouchGFX Designer 中,然后在Image 页面中选择正确的格式 :
注意: 如果图片超过 256 颜色,转换工具就会报错,因此可以使用图片工具(如+ L, q2 K' y9 q8 {' z& `% d / n' Y) n% a* e' Q# e3 g paint.net/imagemagick)将颜色数减少至少于 256 色 :' K0 `! {# D6 j( m8 p7 M 0 M+ f$ u( H/ x8 W ( a( [# }: A, B% F Paint.net:: _* B/ g8 H- a" ~9 c- j
Image Magick (www.imagemagick.org):
- Y. }0 Q5 V4 d, W" h7 L. p6 v. a 02结论 % w# y9 z0 B& ^; X$ ^: [ 图像使用 L8 格式时占用的 flash 大小显著低于标准 24 位格式(RGB888)的原始图像。下表列出了这三种不同调色板格式的具体图像的 flash 使用情况(图片分辨率 200x200):+ N* G5 f7 R0 ?# H0 x$ s2 i0 v$ o2 I
由于 TouchGFX 对于 L8 格式还可以支持 L8_ARGB8888,因此可以与 ARGB8888 等格式的图像进行混合渲染,因此特别适合作为图标等颜色数少但是素材丰富的应用. , m8 ?4 N/ l2 H+ S8 J$ S 综上可以看出,采用 TouchGFX4.12.3+L8 格式 :' v* _& v. y b $ d+ W# c+ I! g 1 h$ g' P( H$ u4 L, ]/ a 1. 相比较 ARGB8888 像素格式, L8 大幅降低了资源文件的大小, 从而降低对存储芯片的需求 . 2. 同时由于图片像素信息大幅减少,读写一张图片的速度也大大提高, 也提高了系统实时性能.7 l8 M$ B$ Y; Z1 @ 3 s0 l' b' G3 ^1 i) d0 h: O 03处理1 q8 j; g0 k: M# T3 D $ g* ^4 h$ ]) P- D6 E! ~" l 因此我们建议客户选择使用 TouchGFX4.12.3+L8 的功能,通过重新优化部分资源文件,减少图片资源的存储空间来实现客户的 UI 效果,并且改善了系统的实时性能.. m, v! p6 C m m# Y' u$ w% o |
|
打卡,学习! |
架构革新篇:单芯片 GUI 方案原理与核心优化技术
STM32 GUI 图形方案,带你解锁嵌入式界面开发新思路
4-开发生态篇:TouchGFX+STM32Cube 一站式 GUI 落地流程
3-产品选型篇:全系列 STM32 GUI 专用 MCU 分级选型表
2-架构革新篇:STM32单芯片嵌入式GUI核心技术原理与性能优势
【福利三:逢7发帖赢大礼】使用MPU6050模块、img_dsc、img_btn机制实现一些简单有趣的动画效果
【福利三:逢7发帖赢大礼】使用arc弧形拉条控件控制PWM舵机及使用SPI3接口操作NRF24L01模块进行无线通信
1-趋势痛点篇:嵌入式 GUI 爆发,传统外挂存储架构的多重工程瓶颈
告别外置存储!大容量内存单芯片MCU,重塑新一代嵌入式GUI
【福利三:逢7发帖赢大礼】调试nucleo-WBA65RI工程测试样板的一些心得
微信公众号
手机版