STMCU小助手
发布时间:2022-8-8 23:13
|
前言; K) w7 Y8 p/ m 客户在使用 TouchGFX 开发 GUI 应用的时候, 往往需要很多的图片资源来呈现友好的人机交互功能, 因此外扩了一个 FLASH 来存储图片资源. 在软件研发后期发现现有的 FLASH 存储空间不够, 因此提出是否可以使用 TouchGFX 来减少图片资源的存储空间且实现同样的 UI 效果.' m, s/ d: O2 R: N% }1 X: P+ d% A s" V: x( M2 k% z 1 调研 经过调研发现 : ➢ 在硬件方面 : MCU 的图像处理加速器 DMA2D 中的调色板的颜色格式 , 支持 L8 格式的图层之间的渲染 : + c2 D# U& R& t6 N9 p0 X
) ?# C/ H5 K9 K- S* H( s" B ➢ 从软件方面: 最新的 TouchGFX4.12.3 开始, 可以利用了 DMA2D 的调色板功能对图片的资源进行优化 .. W. Z5 b. G1 H# t+ R! ^9 F. u ➢ 比如下图(宽 x 高=200x200) : 1.这幅图是由 256 种颜色组成的.8 D: l; i( X- l 2.且每种颜色都针对图像进行了优化.- D3 {% a7 j& l+ I9 Y 3.256 种索引颜色中的每一种都是 24 位颜色.
0 f6 M l5 A; D4 P# I& c% s+ h! o ➢ 为了在 LCD 上显示这张图, TouchGFX Designer 在生成资源文件时,生成的资源文件 大小 :2 a% Y" t4 X# s 1. L8_ARGB8888 : 200x200x1byte+256x4byte=41024bytes+ y! z1 Q% Q. r: v; A. L →200x200 个 8bit 的颜色索引+256 个 32bit 的颜色; V( V9 W% c+ L 9 _8 X5 P6 D N" |; ~
2. ARGB8888 :3 w: \$ H4 H* x3 m 200x200x4byte=160000bytes./ k+ Z$ g; Z# Q# s →200x200 个 32bit 的颜色: }4 F* M& C/ _& b' m ➢ 在 TouchGFX 中使用 L8 Image ,只需要将 L8 的图片拖入到 TouchGFX Designer 中,然后在 Image 页面中选择正确的格式 :
➢ 注意 :如果图片超过 256 颜色,转换工具就会报错,因此可以使用图片工具(如paint.net/imagemagick)将颜色数减少至少于 256 色 : % ?3 g) r4 r; z9 f; t( @4 t1 P ✓ Paint.net :
✓ Image Magick:
; m8 W5 I k8 z7 A4 @0 ]3 x 2 结论 6 x! y, U z3 x* @' D: F2 Q 图像使用 L8 格式时占用的 flash 大小显著低于标准 24 位格式(RGB888)的原始图像。下表列出了这三种不同调色板格式的具体图像的 flash 使用情况(图片分辨率 200x200):+ H3 j" W1 H: D* U- R, q0 s- } 9 ]8 @& g9 [* @0 l* z2 \2 O# r: T
T4 R# \# W9 D. { 由于 TouchGFX 对于 L8 格式还可以支持 L8_ARGB8888,因此可以与 ARGB8888 等格式的图像进行混合渲染,因此特别适合作为图标等颜色数少且素材丰富的应用. 综上可以看出,采用 TouchGFX4.12.3+L8 格式 : 1.相比较 ARGB8888 像素格式, L8 大幅降低了资源文件的大小, 从而降低对存储芯片的需求 . 2.同时由于图片像素信息大幅减少,读写一张图片的速度也大大提高, 也提高了系统实时性能. # _6 S/ }' e7 P/ D/ o1 m' E- H 3 处理 & Q) Y& h: a3 L 因此我们建议客户选择使用 TouchGFX4.12.3+L8 的功能,通过重新优化部分资源文件,减少图片资源的存储空间来实现客户的 UI 效果,并且改善了系统的实时性能. : B' K0 |/ j3 U/ }/ W' U " K$ s, z; _' Q$ o: c$ K 完整版请查看:附件 , n0 t! t" ?6 F7 r1 H$ H |
LAT0771_使用TouchGFX4.12.3和L8格式减少图片资源以提升性能.pdf
下载418.83 KB, 下载次数: 0
【STM32H735G-DK 测评】STM32H735G-DK External Loder 编译和测试
Keil-MDK 在线调试设置断点的高级用法
请教下STM32N6570 怎么把分辨率改成320x240并可以全屏显示
【福利三:逢7发帖赢大礼】想要充分利用STM32H743VI片内的RAM空间(但并不顺利)
基于stm32平台上的IC-MU磁绝对值编码器SPI通讯和码盘数据处理
使用STM32 MCU和MPU连接PDM数字麦克风
分享STM32资料-采用 STM32U031R8 MCU 的 STM32 Nucleo-64 开发板,官方资料,数据手册等资料
HRTIM 指南
使用 STM32 的 DWT 单元监控内存
DAC,COMP,HRTIM Fault 功能的使用
微信公众号
手机版