支持的芯片

概述

PPE(像素处理引擎)是一款弱化的 2D 图像处理引擎,提供基础的图像处理能力,专为满足嵌入式系统等对资源和成本有严格要求的场景而设计。

PPE 支持常用的像素级操作,如颜色转换、缩放、Alpha 混合、抠色等,可高效完成常见的 2D 图像处理任务,但并不具备复杂 3D 渲染能力。

功能特性

PPE 有 3 个输入层和 1 个输出层。有以下特性:

  • Alpha 混合

  • 缩放

  • 窗口配置

  • 抠色

  • 像素转换

  • 多输入输出源

备注

  • Alpha 混合功能和缩放功能是并列功能,不能同时使用。

  • 在使用 alpha 混合功能或者缩放功能时,可以同时使用其他功能特性。

Alpha 混合

PPE 支持最高 3 层 alpha 混合功能。

../../../_images/ppe_alpha_blending_dplus.jpg

alpha 混合功能计算公式如下:

\[C_R = \frac{C_{FG} \cdot A_{FG} + C_{BG} \cdot (255 - A_{FG})}{255}\]

缩放

PPE 使用双线性插值算法可以实现良好的缩放效果,最高可放大或者缩小 16 倍。

备注

  • 使用缩放时,不支持可变像素起始位置。

  • 只有第一层支持缩放。

窗口配置

PPE 的窗口配置功能有以下特性:

  • 可变像素起始位置。即可以控制输入窗口在输出窗口的位置。

  • 可变窗口大小。可以配置输入窗口和输出窗口的大小。

  • 可变行宽度。可以实现输入窗口的裁剪功能,和输出窗口的画中画功能。

../../../_images/ppe_window.jpg

抠色

当输出窗口的像素符合设定的值时,该像素将会输出 0 值。

像素转换

输入和输出支持多种像素格式,包括 ARGB8888,RGB888, RGB565 等多种常见格式。

支持的所有格式参考文件 ameba_ppe.h 中的 PPE_PIXEL_FORMAT。部分格式如 XRGB8888 中的 X 表示 alpha 值取反,即实际计算时会对 X 值取反进行计算。

多输入输出源

输入地址可以是 PPE 设定的内部像素值,也可以是内存。

输出的地址可以是内存,也可以是 QSPI。通过 QSPI 可以直接将输出显示到外接的屏幕上。

API 参考

要详细了解和使用相关 API,请参阅 {SDK}\component\soc\amebaxxxx\fwlib\include\ameba_ppe.h

应用示例

SDK 提供了功能示例帮助开发者了解和使用 PPE :

raw 示例

  • 路径:{SDK}\component\example\peripheral\raw\Display\PPE\{demo}

以下是对 raw 示例功能的简要说明: