双缓冲:解压快还是写屏快
平台:MCU + 硬件解压 + 双帧缓冲 + i8080 面板 + TE
关联:ST7789 TE 信号实测
1. 背景
双缓冲让解压和写屏叠在两块帧缓冲上,帧率本该接近较慢的那一端。要确认的是瓶颈落在哪:解压更快时,写屏会占住帧缓冲,下一张解不了,吞吐被写屏拖住;写屏更快时,解压器可以连续转,吞吐被解压拖住。
压缩图先由硬件解压到其中一块帧缓冲;解完等到 TE,再经 i8080 写到屏 GRAM。
下一张要开始解压,需要同时满足:
- 显示通路在跑
- 解压器空闲
- 有一张压缩图在等着解
- 有空闲帧缓冲(没在解、不是已解完等写屏、也没在写屏)
2. 对照动画
应用侧一直有待解的下一张,TE 每 17 ms 一次。左:解压 20 ms / 写屏 50 ms;右:解压 53 ms / 写屏 23 ms(一组 320×480 RGB565 的量级)。蓝是解压,绿是写屏,红是没有空闲帧缓冲。