客户在使用 TouchGFX开发 GUI应用的时候, 需要很多的图片资源来呈现友好的人机交互功能, 因此外扩了一个 FLASH来存储图片资源. 在软件研发后期发现现有的 FLASH存储空间不够, 因此提出是否可以使用 TouchGFX来减少图片资源的存储空间且实现同样的 UI效果.
01调研, |- T6 Y1 S; ~8 X; M ! Z" x/ z4 ~% g( f% n ! ?( E0 p, q8 ?! B* {3 t7 c # 在硬件方面5 q2 Z7 U2 e- W 9 f: q0 j" s+ L* _5 {5 U MCU 的图像处理加速器DMA2D 中的调色板的颜色格式 , 支持 L8 格式的图层之间的渲染:: j4 f2 V. A8 |
# 从软件方面6 _' m, P% H( l* w 7 @- w+ u4 [5 y8 m3 s 最新的 TouchGFX4.12.3 开始, 可以利用了 DMA2D 的调色板功能对图片的资源进行优化 .4 h1 D/ p, }. n; l- C7 `' Z7 c ) x$ A) J2 K" L* w% s9 V # 比如下图(宽 x 高=200x200) 0 p( q! c4 N; Q5 `. F- s; s3 G) W6 q % z8 {$ J4 _/ c' B2 P2 I$ _5 w5 B; i 1. 这幅图是由 256 种颜色组成的. 2. 且每种颜色都针对图像进行了优化. 3. 256 种索引颜色中的每一种都是 24 位颜色.+ b) p* a. j/ e7 I2 E
. }6 A8 q" o9 ^ c 1. L8_ARGB8888 :5 t0 e7 E' I9 {/ L8 P# Y8 v 200x200x1byte+256x4byte=41024bytes6 r0 p' U8 \1 l1 N4 {' q6 } / k- F7 W; ~, a- Q$ O. F$ P0 t. n5 z =>200x200 个 8bit 的颜色索引+256 个 32bit3 q; X. ?2 W' x) M( w
2. ARGB8888 : 200x200x4byte=160000bytes. =>200x200 个 32bit 的颜色/ m6 b- f$ t" L) a3 z 3 P! U, J* u. w# _0 M9 Z: H+ J # L' K8 E* k8 k 在 TouchGFX 中使用 L8 Image ,只需要将 L8 的图片拖入到 TouchGFX Designer 中,然后在Image 页面中选择正确的格式 :
注意 :如果图片超过 256 颜色,转换工具就会报错,因此可以使用图片工具(如 # H( l6 G: z4 n s9 F; t w paint.net/imagemagick)将颜色数减少至少于 256 色 : $ n! t9 U( ?2 \2 _4 m3 |9 U3 Y Paint.net:+ f6 s3 y3 r7 t& k; }3 c! e
02结论 1 ^ y. |' g) {( U0 f; O 图像使用 L8 格式时占用的 flash 大小显著低于标准 24 位格式(RGB888)的原始图像。下表列出了这三种不同调色板格式的具体图像的 flash 使用情况(图片分辨率 200x200):
; s) ]% ]2 j, `$ r ; ~* I1 e3 D3 Q! z 综上可以看出,采用 TouchGFX4.12.3+L8 格式 :* u+ J- V" K3 r7 K) a8 x, | 0 ~3 B, i8 b z 1. 相比较 ARGB8888 像素格式, L8 大幅降低了资源文件的大小, 从而降低对存储芯片的需求 . 2. 同时由于图片像素信息大幅减少,读写一张图片的速度也大大提高, 也提高了系统实时性能." G. |, {1 ^+ j8 [ / {! r( a3 t: M4 L, g 03处理 & J& M! m$ K4 e8 M T2 H, ?, b5 X 因此我们建议客户选择使用 TouchGFX4.12.3+L8 的功能,通过重新优化部分资源文件,减少图片资源的存储空间来实现客户的 UI 效果,并且改善了系统的实时性能.1 m, z* `/ t9 [! I 9 d* n, c# P) H h |
学习 8 Z7 s: T! p6 U. _ |
架构革新篇:单芯片 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工程测试样板的一些心得
微信公众号
手机版