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

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

[复制链接]
STMCU-管管 发布时间:2021-5-31 17:37
客户在使用 TouchGFX开发 GUI应用的时候, 需要很多的图片资源来呈现友好的人机交互功能, 因此外扩了一个 FLASH来存储图片资源. 在软件研发后期发现现有的 FLASH存储空间不够, 因此提出是否可以使用 TouchGFX来减少图片资源的存储空间且实现同样的 UI效果.
$ |& K1 T' K# w" M) c. q; G; |
1.png

  j/ o/ I0 H3 o* c01调研/ z& k" ~9 t" y( f( X

6 _: \7 \) I- z' O) n; N$ ~
% [' }$ U; M  s1 y. O* m" k8 p
# 在硬件方面
; `8 `; a' l. o" ~% d3 M9 |8 V$ U3 ~: t
9 n: N$ B+ U% R/ _; s0 \
MCU 的图像处理加速器DMA2D 中的调色板的颜色格式 , 支持 L8 格式的图层之间的渲染:/ D: P$ e! |( W: U& f7 i
2.png
7 S1 E; |3 o( _+ C+ D
# 从软件方面6 |) B" |7 F- ~
9 F1 H2 p* U* O* I; w& `

. J% \( {1 t1 H/ o" v最新的 TouchGFX4.12.3 开始, 可以利用了 DMA2D 的调色板功能对图片的资源进行优化 .& `/ w+ @/ ?) F1 K' @, e
, }8 M7 d" i* D3 {
# 比如下图(宽 x 高=200x200)
2 F9 e# h  V+ V) q6 C  m1 j2 F) n3 P) w# `/ ~& {! M8 I9 A; z

; z* w  X$ M4 j2 g5 I1. 这幅图是由 256 种颜色组成的.- ^% R1 H% Y  [0 u( g
2. 且每种颜色都针对图像进行了优化.; h' O' S2 K; Q( c  V
3. 256 种索引颜色中的每一种都是 24 位颜色./ N9 `$ r% w* y
3.png
为了在 LCD 上显示这张图, TouchGFX Designer 在生成资源文件时,生成的资源文件大小:5 b1 x3 l. i4 L7 X- \  f9 v

+ q5 }) X' ]! D5 \6 @2 l. U

' D' w8 L- w. P" R3 [% W% U  l1. L8_ARGB8888 :
6 Q2 n# v8 P2 a6 T* k) Y" F200x200x1byte+256x4byte=41024bytes; \, n  X' s9 [' d. b0 p$ e

- `5 m7 x: E6 x4 r6 V
, W1 M1 J+ p/ \
=>200x200 个 8bit 的颜色索引+256 个 32bit1 x- o1 W9 Q5 S+ `
4.png

4 v' y  k" F' K  }' f# t

5 G6 z4 f( [3 O" D, a2. ARGB8888 :
3 [9 z9 p$ ~; u8 g( _: o200x200x4byte=160000bytes.
2 s0 y+ o" G6 U$ [=>200x200 个 32bit 的颜色
% ^: a( f! ?& U. z2 {
3 o. ?) a$ o2 G9 U- `

2 o( O5 @0 f6 L; r5 R6 c在 TouchGFX 中使用 L8 Image ,只需要将 L8 的图片拖入到 TouchGFX Designer 中,然后在Image 页面中选择正确的格式 :2 `) P: @" ?9 y. d- J( ?& ]
5.png

4 S  V6 C! x. W( R! V注意 :如果图片超过 256 颜色,转换工具就会报错,因此可以使用图片工具(如
9 S3 E4 p& X! Q+ B+ g+ a
( u- i! ^7 b" A! T4 v& K# j/ _, X

6 z% o. S# Q/ J: L7 A4 K+ o  Hpaint.net/imagemagick)将颜色数减少至少于 256 色 :
1 @5 ?1 g+ v! N2 V& o6 X( d3 G0 l3 \
# Z; h. ?, ?$ `
  H, C7 M/ |1 H
Paint.net:
' w. b) X' R: t9 A" w+ D
6.png
Image Magick (www.imagemagick.org):
$ d8 K3 j5 Y5 a( K/ l
7.png
  A" M/ r0 k* H" w- D/ c9 J/ \; H
02结论( Y7 w: Y1 W# T, w; }/ A3 m. @9 A
% V( u7 _0 t# }& J2 f7 ]

7 D8 b" l3 r  O  \4 e图像使用 L8 格式时占用的 flash 大小显著低于标准 24 位格式(RGB888)的原始图像。下表列出了这三种不同调色板格式的具体图像的 flash 使用情况(图片分辨率 200x200):
0 C, X# {7 Z& _; E4 A6 D
8.png
由于 TouchGFX 对于 L8 格式还可以支持 L8_ARGB8888,因此可以与 ARGB8888 等格式的图像进行混合渲染,因此特别适合作为图标等颜色数少但是素材丰富的应用.8 @& ]9 ^$ l0 C; Z4 |" G) }) d& I+ ?
( H8 r2 G! A, p: E" C/ l  @
9 x$ J# y) a1 G) t' |
综上可以看出,采用 TouchGFX4.12.3+L8 格式 :
+ \/ e; i0 _0 D: {6 o$ O; \2 O" C4 \7 H1 R7 Z# I

9 R) Y' A  L# p) R) N& Y1. 相比较 ARGB8888 像素格式, L8 大幅降低了资源文件的大小, 从而降低对存储芯片的需求 .
) d: B7 \& A3 N7 ^3 t) E, U! B. Q: A2. 同时由于图片像素信息大幅减少,读写一张图片的速度也大大提高, 也提高了系统实时性能.9 O, v% v3 w) G8 w& X7 Y2 {
6 M9 \9 P) g7 E
03处理
0 w: H$ B# p4 T& q' I5 a
) n. M5 D7 M! y1 ]2 u% p- @, u+ [因此我们建议客户选择使用 TouchGFX4.12.3+L8 的功能,通过重新优化部分资源文件,减少图片资源的存储空间来实现客户的 UI 效果,并且改善了系统的实时性能.
4 b' N4 h7 J0 _6 r( i
: ]- s+ q* [. D/ ^6 @
1 收藏 1 评论1 发布时间:2021-5-31 17:37

举报

1个回答
BEEE 回答时间:2021-9-14 21:08:25
学习/ D) S1 F' p0 D, Q0 j; X" W$ l7 e
关于意法半导体
我们是谁
投资者关系
意法半导体可持续发展举措
创新和工艺
招聘信息
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
关注我们
st-img 微信公众号
st-img 手机版