STMCU小助手
发布时间:2023-6-18 14:37
|
前言; m \& U; n* b8 C. H) X) e 客户在使用 TouchGFX 开发 GUI 应用的时候, 往往需要很多的图片资源来呈现友好的人机交互功能, 因此外扩了一个 FLASH 来存储图片资源. 在软件研发后期发现现有的 FLASH 存储空间不够, 因此提出是否可以使用 TouchGFX 来减少图片资源的存储空间且实现同样的 UI 效果.3 p2 H* G0 t" }7 F 1 调研 : i* |* \1 C: b- a2 K 经过调研发现 : ➢ 在硬件方面 :. o; j$ y2 v% Q$ I4 F- p: y MCU 的图像处理加速器 DMA2D 中的调色板的颜色格式 , 支持 L8 格式的图层之间的渲染 :6 v* i6 Z3 P3 w/ }, a$ E# u * _9 j. ^3 w q& e# A9 m" N# ? 1 g! R+ f9 ?5 x' [/ t. g
4 A a& h. k* i, t' m x% d# X9 f6 M ➢ 从软件方面: 最新的 TouchGFX4.12.3 开始, 可以利用了 DMA2D 的调色板功能对图片的资源进行优化 ., W6 M1 t8 e0 \* B ➢ 比如下图(宽 x 高=200x200) :. ]9 j) E) ]( l1 g O" f! N8 V 1.这幅图是由 256 种颜色组成的.( ]( i! k7 ]3 h" U0 X 2.且每种颜色都针对图像进行了优化. 3.256 种索引颜色中的每一种都是 24 位颜色.
7 H- V8 H ]* L; t ➢ 为了在 LCD 上显示这张图, TouchGFX Designer 在生成资源文件时,生成的资源文件 大小 : k D# [ Y: @; @ 1. L8_ARGB8888 :8 m1 J% h7 t) s- U* d! ~ 200x200x1byte+256x4byte=41024bytes →200x200 个 8bit 的颜色索引+256 个 32bit 的颜色0 y4 C# J8 U& y2 U7 w& w/ R - v) [9 `! J/ W1 w1 ?
7 o9 f B1 \# c7 @ 2. ARGB8888 :6 j$ y" \+ d. I& n1 V- Y. P 200x200x4byte=160000bytes.! `1 y# \& y/ U5 j. ?0 _% T( G( ` →200x200 个 32bit 的颜色 ➢ 在 TouchGFX 中使用 L8 Image ,只需要将 L8 的图片拖入到 TouchGFX Designer 中,然后在 Image 页面中选择正确的格式 :* {: u5 f: {$ N/ b, c$ N
9 R' A, U) |# `* M' U" N ➢ 注意 :如果图片超过 256 颜色,转换工具就会报错,因此可以使用图片工具(如paint.net/imagemagick)将颜色数减少至少于 256 色 :" @: f; z3 S* Q0 }7 R5 r ✓ Paint.net : ( w7 ^/ b3 o/ \5 A5 W) R
4 c$ |6 L) L, r0 z : f: F, E* F5 s% Y% s 2 结论 图像使用 L8 格式时占用的 flash 大小显著低于标准 24 位格式(RGB888)的原始图像。下表列出了这三种不同调色板格式的具体图像的 flash 使用情况(图片分辨率 200x200): - O, J& P) B; O, G5 a' T- Q
由于 TouchGFX 对于 L8 格式还可以支持 L8_ARGB8888,因此可以与 ARGB8888 等格式的图像进行混合渲染,因此特别适合作为图标等颜色数少且素材丰富的应用.- _& ?: H" Z* a' E- X' G7 r 综上可以看出,采用 TouchGFX4.12.3+L8 格式 : 1.相比较 ARGB8888 像素格式, L8 大幅降低了资源文件的大小, 从而降低对存储芯片的需求 . 2.同时由于图片像素信息大幅减少,读写一张图片的速度也大大提高, 也提高了系统实时性能. 2 F( I5 \6 y5 P5 j* V9 g8 E3 { 完整版请查看:附件; Q z- y/ z8 p }% T0 t
使用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 功能的使用
微信公众号
手机版