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

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

[复制链接]
STMCU-管管 发布时间:2021-6-23 15:14
客户在使用 TouchGFX开发 GUI应用的时候, 需要很多的图片资源来呈现友好的人机交互功能, 因此外扩了一个 FLASH来存储图片资源. 在软件研发后期发现现有的 FLASH存储空间不够, 因此提出是否可以使用 TouchGFX来减少图片资源的存储空间且实现同样的 UI效果.
$ E! K" u6 G8 H
21.png
6 |& V0 o5 U) Y7 ]
01调研
% }/ K; ?. X5 @! E* @( }# O' B: o# G2 n

# e8 z3 I$ s8 [; e# 在硬件方面
1 l9 h: ~/ _" k$ t/ O! }MCU 的图像处理加速器DMA2D 中的调色板的颜色格式 , 支持 L8 格式的图层之间的渲染:, A% X3 u- w' n# V; T
22.png

- S& e, Q% u# A: U
2 V' v4 Z4 }4 p/ X9 K: t. B# 从软件方面6 N; W6 f/ c1 u9 a
最新的 TouchGFX4.12.3 开始, 可以利用了 DMA2D 的调色板功能对图片的资源进行优化 .
1 h- Z0 i4 ^: w  x8 e* i5 P; y! R& w8 C) C' M: T
# 比如下图(宽 x 高=200x200) ! _% ?  W2 ^7 }' l8 T* x7 W6 ^8 h

5 \& i* z* B' x5 a$ G7 ~
! ~+ D1 T! z) |6 \5 g
1. 这幅图是由 256 种颜色组成的.
; ]) H$ [& S% G9 M" }: s2. 且每种颜色都针对图像进行了优化.
0 \0 }4 v2 t% _- N3. 256 种索引颜色中的每一种都是 24 位颜色.
+ i2 x' k5 O, Z4 b) ~; V9 \! F
23.png

1 ]; W2 a* M) w; h" t4 v为了在 LCD 上显示这张图, TouchGFX Designer 在生成资源文件时,生成的资源文件大小:
( p) U- S- f3 L1 y5 t8 a# j9 }' S- x9 e& J& R
0 Z  h0 T' J# D( `" {* \( ?. i+ `
1. L8_ARGB8888 :
! M# e# i+ j( I2 b4 h200x200x1byte+256x4byte=41024bytes
( ?1 |& @8 I2 U# K+ ]4 y=>200x200 个 8bit 的颜色索引+256 个 32bit
; o; q% M/ k9 J* Y
24.png
: B7 d+ T; Y7 j1 j, K) k% N. K
2. ARGB8888 :
' N6 ^- Q) c5 L1 Y' \200x200x4byte=160000bytes.
! z) S. x. G$ c# p# n. I* ]=>200x200 个 32bit 的颜色
, H/ ?( K7 b" E& t6 _, ^/ U  o! C2 Z" V, E" d" S3 E" Q; T9 q
4 F% V) T; w0 x
在 TouchGFX 中使用 L8 Image ,只需要将 L8 的图片拖入到 TouchGFX Designer 中,然后在Image 页面中选择正确的格式 :
8 y0 d# D* ~9 }4 b$ Q2 t2 q7 U
25.png
9 l: E6 K1 H  G0 a
3 h, K7 W* G" u1 @- Z) N
注意: 如果图片超过 256 颜色,转换工具就会报错,因此可以使用图片工具(如
1 v- I% I" G. z- q8 n  A
, O+ H7 K0 d0 G- ]5 o/ B4 Q) Z
4 F5 f  s& s- L3 w
paint.net/imagemagick)将颜色数减少至少于 256 色 :' O* v9 {& h: B. h
) i/ p' N# b8 t7 c8 K6 R

! u7 i* w1 j- f& }8 B! r5 K Paint.net:! \: z) ?& C2 |# |: W' C! b
26.png
$ |! C% {& |- B2 i# K- w( [! R
Image Magick (www.imagemagick.org):
9 s) o* N* I. i; H: |, C
27.png
& R  O! D3 z& m3 f, _

* z! m+ ^9 o$ D% v+ p' s( ~02结论( l9 g$ B+ c; P

5 n5 U/ Z" A- i, i5 c  V! R
7 j- X8 _- |' e; l$ {6 K
图像使用 L8 格式时占用的 flash 大小显著低于标准 24 位格式(RGB888)的原始图像。下表列出了这三种不同调色板格式的具体图像的 flash 使用情况(图片分辨率 200x200):$ v* d4 ]- B4 a/ g1 m1 c
28.png
* l1 h- y1 ~7 y
由于 TouchGFX 对于 L8 格式还可以支持 L8_ARGB8888,因此可以与 ARGB8888 等格式的图像进行混合渲染,因此特别适合作为图标等颜色数少但是素材丰富的应用.$ _" C/ [1 _6 k8 W
& K( m/ n: ]& y% _
综上可以看出,采用 TouchGFX4.12.3+L8 格式 :7 c' L, \+ Q4 }

! L/ b, K, r- p& v4 G) O
& o, q5 m" W- J" W4 ]3 y
1. 相比较 ARGB8888 像素格式, L8 大幅降低了资源文件的大小, 从而降低对存储芯片的需求 ./ j% ?$ T5 L  Q% a- M
2. 同时由于图片像素信息大幅减少,读写一张图片的速度也大大提高, 也提高了系统实时性能.2 L6 _6 p9 X9 ^# ~4 X
/ u+ |) U% J' j4 }# k: f( Y) p

8 z% B( R% }  x+ l) u4 B03处理
' K7 I: U$ |  [- |& ]
7 N: L; `2 ^2 ^  I因此我们建议客户选择使用 TouchGFX4.12.3+L8 的功能,通过重新优化部分资源文件,减少图片资源的存储空间来实现客户的 UI 效果,并且改善了系统的实时性能.
9 p4 G  s3 R5 N
收藏 1 评论1 发布时间:2021-6-23 15:14

举报

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