你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

工程师笔记 | 使用 TouchGFX4.12.3+L8 格式减少图片资源以提高性能

[复制链接]
STMCU-管管 发布时间:2021-6-23 15:14
客户在使用 TouchGFX开发 GUI应用的时候, 需要很多的图片资源来呈现友好的人机交互功能, 因此外扩了一个 FLASH来存储图片资源. 在软件研发后期发现现有的 FLASH存储空间不够, 因此提出是否可以使用 TouchGFX来减少图片资源的存储空间且实现同样的 UI效果.
, v- W, {; M  ], ?) C
21.png
4 i6 \2 X  Q  j6 ^4 x8 j* R
01调研; ?$ {( c6 |5 b' d2 P& u
$ F9 y+ A3 D" l: U& ^  c% \7 c
1 S( C: Y, G; }7 D3 k
# 在硬件方面7 Q& E: `! p4 a5 D8 E; X; ]% ~
MCU 的图像处理加速器DMA2D 中的调色板的颜色格式 , 支持 L8 格式的图层之间的渲染:
+ X% R* y  j; B" a
22.png
' S& b0 s  m/ X2 v# P, A2 R
) E3 G& @5 [% L1 U. b
# 从软件方面
# [8 {/ L0 l5 {2 o. w. K3 ^最新的 TouchGFX4.12.3 开始, 可以利用了 DMA2D 的调色板功能对图片的资源进行优化 .  r$ `( a) j! q, \  i+ L4 E8 V8 `
: _3 e+ s9 ?3 [, v+ d1 a
# 比如下图(宽 x 高=200x200) * \' E6 A, B4 Y: l$ t$ q- [+ a

1 Q% O0 n2 _/ ?& ]
  m2 s; Z! i% Z9 p. R
1. 这幅图是由 256 种颜色组成的.% `2 s8 }2 }- ?: }* s3 I4 C
2. 且每种颜色都针对图像进行了优化.: o9 s2 l6 E8 C$ R
3. 256 种索引颜色中的每一种都是 24 位颜色.
1 K& e6 d8 b" K0 x9 v
23.png

4 c9 |' U" w) x/ a, i为了在 LCD 上显示这张图, TouchGFX Designer 在生成资源文件时,生成的资源文件大小:8 O% ]7 P; F/ O' ^
* B4 e# b# x# d4 v; z( N, @6 s
9 z2 u. ?( Q% V7 q# s
1. L8_ARGB8888 :
5 ~0 z+ Z5 O0 g0 t  p200x200x1byte+256x4byte=41024bytes# [& D' Q8 \" M0 S# r" r
=>200x200 个 8bit 的颜色索引+256 个 32bit
7 L0 F3 G8 R' [/ C8 H  F
24.png

5 x  r3 @6 n( P1 B9 d0 V# m2. ARGB8888 :
: [0 B, D% Z2 t- x) x; _# g200x200x4byte=160000bytes.
4 q/ s6 s% v! W# @( V9 G! {=>200x200 个 32bit 的颜色$ ~  M) Z# N4 E* E
8 u3 {2 O( A" S3 a6 r. Q6 E
* t: i! [, f4 G
在 TouchGFX 中使用 L8 Image ,只需要将 L8 的图片拖入到 TouchGFX Designer 中,然后在Image 页面中选择正确的格式 :
% o' s0 u! X3 W2 a( L& e3 J1 Q
25.png
' G8 L# O7 D  `2 ^  D4 e% c

0 P/ r- [; c9 q2 F) _注意: 如果图片超过 256 颜色,转换工具就会报错,因此可以使用图片工具(如
0 b% E+ R% m7 f& I; `! d! B; w
( J% z4 f- D; h" `# G/ V
1 r$ T, v' S3 e" p. M7 V1 S
paint.net/imagemagick)将颜色数减少至少于 256 色 :$ ]* ~; [. n! M6 B' C* n) \7 q8 q
/ m2 G$ X# q# m8 }7 o& K
$ v4 a, M0 t$ |* s& F+ t
Paint.net:4 t2 ^8 V5 V$ u: y( H
26.png
; q+ g+ N9 D0 l: f9 d8 {9 Z+ ~( P3 |
Image Magick (www.imagemagick.org):. z4 Q0 k2 ~- f) z' g) |
27.png

% }* h5 K0 M* a" y, X
: {) ^6 x, Q* U' J' j, x02结论
7 I! ^8 r9 M4 H  ]: o& m) Q9 k: W
* ~( T  g. J! F# Q4 t! r

5 X3 M5 q2 N) I3 Q& v图像使用 L8 格式时占用的 flash 大小显著低于标准 24 位格式(RGB888)的原始图像。下表列出了这三种不同调色板格式的具体图像的 flash 使用情况(图片分辨率 200x200):( b$ J: E4 L( D8 d5 x6 a" W/ c- X
28.png
' k( T+ D/ U% C( r% a
由于 TouchGFX 对于 L8 格式还可以支持 L8_ARGB8888,因此可以与 ARGB8888 等格式的图像进行混合渲染,因此特别适合作为图标等颜色数少但是素材丰富的应用.
& _! _4 f& ^* a- _
7 b2 a% n) k! N2 H+ v% e) g) j0 k  ^综上可以看出,采用 TouchGFX4.12.3+L8 格式 :
* y  q9 p1 q& i2 E( M0 f' V
9 J# H+ ?& @" [# o6 h- M- @
# E" \- l( r0 O5 r
1. 相比较 ARGB8888 像素格式, L8 大幅降低了资源文件的大小, 从而降低对存储芯片的需求 .( w: N+ ]( m  C  X5 x
2. 同时由于图片像素信息大幅减少,读写一张图片的速度也大大提高, 也提高了系统实时性能.6 S9 Z$ D' S3 C) Q2 \! E6 K

' B8 j! y2 b& b! t) P

9 I3 c' [! x% l9 r03处理' }4 ~' C  J- ~0 O2 J
5 [) g  f0 Q& ?% U, d
因此我们建议客户选择使用 TouchGFX4.12.3+L8 的功能,通过重新优化部分资源文件,减少图片资源的存储空间来实现客户的 UI 效果,并且改善了系统的实时性能.  K: r1 y: t5 H/ N
收藏 1 评论1 发布时间:2021-6-23 15:14

举报

1个回答
xudongqiang 回答时间:2021-9-7 15:26:07
打卡,学习!) f% i. B5 G* _- i6 h/ t5 ?

所属标签

相似分享

官网相关资源

关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
STM32N6 AI生态系统
STM32MCU,MPU高性能GUI
ST ACEPACK电源模块
意法半导体生物传感器
STM32Cube扩展软件包
关注我们
st-img 微信公众号
st-img 手机版