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

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

[复制链接]
STMCU-管管 发布时间:2021-6-23 15:14
客户在使用 TouchGFX开发 GUI应用的时候, 需要很多的图片资源来呈现友好的人机交互功能, 因此外扩了一个 FLASH来存储图片资源. 在软件研发后期发现现有的 FLASH存储空间不够, 因此提出是否可以使用 TouchGFX来减少图片资源的存储空间且实现同样的 UI效果." s' w4 o6 {& M4 S
21.png
& e6 m' O+ y# p) P
01调研! R9 ?' q: T$ l5 J) B; E
3 P) K! ]! p# X9 s* a5 \

1 C& [! B7 B8 M3 q. i$ ^; R0 h- b" L! L# 在硬件方面
- H  k# i9 N7 o8 j! O3 F3 ^% nMCU 的图像处理加速器DMA2D 中的调色板的颜色格式 , 支持 L8 格式的图层之间的渲染:
; B% ~) M8 L. h0 g
22.png

2 D0 m2 i, m* _, F9 c4 a  r
8 N/ j; O0 N, j, _, j! _4 y# 从软件方面; o& n2 M3 u" w7 a3 Y
最新的 TouchGFX4.12.3 开始, 可以利用了 DMA2D 的调色板功能对图片的资源进行优化 .
8 m7 z" h, k; X  d# R# R/ ^1 g( @
) `2 I" ^% l$ V& p, m; Z# 比如下图(宽 x 高=200x200)
. D$ v6 G5 u% z( F
* C8 ~; c% y# d: a
, }: n2 M2 e% q* c
1. 这幅图是由 256 种颜色组成的.
; a7 ]9 S* u7 Z5 T  O/ t( _9 ~2. 且每种颜色都针对图像进行了优化.; T* L6 _: z; Q* T8 m3 D" p
3. 256 种索引颜色中的每一种都是 24 位颜色.! g  m$ x' b! z9 k' J- Q
23.png

/ j7 v9 G) O$ \: @' [9 u- d4 v为了在 LCD 上显示这张图, TouchGFX Designer 在生成资源文件时,生成的资源文件大小:
& m+ q' }9 `5 V  l
& ]. t4 F* G/ T/ ?3 ^" y/ o
' J4 k  R/ i; ^0 i" z2 i
1. L8_ARGB8888 :# |% x8 k6 G$ k$ W/ C4 [9 \0 n
200x200x1byte+256x4byte=41024bytes6 S3 h2 n" G: [* M% I  M
=>200x200 个 8bit 的颜色索引+256 个 32bit' J% V2 n# H! F2 B+ N( N4 J' v9 M2 u
24.png
! o' A4 s! Z( ?, ~5 h% C2 V0 ^, Q( M
2. ARGB8888 :
( `6 B6 O# Z8 D: C( J1 M5 @; D! K200x200x4byte=160000bytes.
9 w+ h6 t4 Y; X% K# i1 Y/ V=>200x200 个 32bit 的颜色
# \9 d$ ~0 n2 L3 j3 s, T
, \4 j( P4 u1 k- F5 O
) B7 U# w( j. E1 T, n
在 TouchGFX 中使用 L8 Image ,只需要将 L8 的图片拖入到 TouchGFX Designer 中,然后在Image 页面中选择正确的格式 :
; T& S( a- F7 t8 V' ~! a3 p7 b
25.png

+ m& B$ v2 K6 z* j; v8 U$ ?7 u- Z4 Z0 i1 r& C- P3 D) A
注意: 如果图片超过 256 颜色,转换工具就会报错,因此可以使用图片工具(如
1 `& w9 \2 }2 x1 I5 c+ {
. }3 D+ Y% W$ h4 }) R! D4 R8 ]
$ w8 E4 m: T2 o/ P
paint.net/imagemagick)将颜色数减少至少于 256 色 :
; {9 h( t" \6 m* x! ?6 U( O' F8 a- i( s$ U
$ @4 N2 O4 I2 {3 O
Paint.net:+ e$ Q8 [- `2 @* h
26.png
' \' p! G9 R- ~0 u- `, L, r
Image Magick (www.imagemagick.org):: W) s  f4 z) K- i" p! w+ Q4 k
27.png

% ]& i1 `, x( J! _; H. l
& c% F3 G" h+ ~7 `) T( \* ?02结论
# t' n$ P. Z* L* r/ ]/ H4 h/ W' {! ~+ O/ C& `: h4 p) k1 ^7 I5 D

$ \5 `4 x. H# ^2 i& D6 b* O( T* Z$ Q4 m图像使用 L8 格式时占用的 flash 大小显著低于标准 24 位格式(RGB888)的原始图像。下表列出了这三种不同调色板格式的具体图像的 flash 使用情况(图片分辨率 200x200):  w/ N. `+ z" Z6 V5 t0 b2 M* `+ R6 r
28.png

% `4 [9 P  \* \由于 TouchGFX 对于 L8 格式还可以支持 L8_ARGB8888,因此可以与 ARGB8888 等格式的图像进行混合渲染,因此特别适合作为图标等颜色数少但是素材丰富的应用.5 G7 j& R) \! D. f

: b" R; r+ x. w* m1 ~综上可以看出,采用 TouchGFX4.12.3+L8 格式 :9 M6 m/ Y. A" {. G- T5 h6 ~
0 e: t) o' t4 ?8 C- a5 S( x6 X

* }1 p# b3 H" Z0 u+ C1. 相比较 ARGB8888 像素格式, L8 大幅降低了资源文件的大小, 从而降低对存储芯片的需求 .& r& Q& {" e8 D/ M1 D
2. 同时由于图片像素信息大幅减少,读写一张图片的速度也大大提高, 也提高了系统实时性能.
! @+ D: r/ E+ z  r5 I: N1 N& O3 p: _. V

) ?0 B$ I2 b9 {4 [; @03处理  ^. l1 L* B3 K6 ?( t7 f1 i

$ M  z( X( \/ s4 f# k# s因此我们建议客户选择使用 TouchGFX4.12.3+L8 的功能,通过重新优化部分资源文件,减少图片资源的存储空间来实现客户的 UI 效果,并且改善了系统的实时性能.
4 H* j8 \5 X" j+ n  A( U
收藏 1 评论1 发布时间:2021-6-23 15:14

举报

1个回答
xudongqiang 回答时间:2021-9-7 15:26:07
打卡,学习!3 p: O  P9 Q! P. G$ m
关于意法半导体
我们是谁
投资者关系
意法半导体可持续发展举措
创新和工艺
招聘信息
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
关注我们
st-img 微信公众号
st-img 手机版