Scale
该示例演示 PPE 的缩放功能。
环境需求
该示例的环境需求,可参考 环境需求。
硬件连线
在此示例工程的演示中,无需进行额外的物理连线。
配置选项
可以通过调整以下参数来变更缩放结果:
缩放比例
水平方向和垂直方向的缩放比例可以通过如下参数进行调整:
float horizontal_ratio = 2.5; float vertical_ratio = 0.8;
编译和下载
该示例的编译和下载流程,可参考 编译和下载。
测试验证
缩放成功
当示例工程执行完成后,PPE的缩放结果将与模拟数据进行比较。若在DebugAnalyzer窗口中观察到如下日志,表明缩放成功:
PPE scale test passed 0
缩放失败
当示例工程执行完成后,PPE的缩放结果将与模拟数据进行比较。若在DebugAnalyzer窗口中观察到如下日志,表明缩放失败:
Data mismatch at offset 179, expect 0x%40406427, actual 0x%12345678
PPE scale test failed {error code}
{error code}的描述可以在 PPE_ERR
中找到。
代码介绍
该章节主要介绍示例中的初始化和相应功能实现的代码和流程说明。
源码路径
工程文件和源码路径如下:
工程路径:
sdk\samples\peripheral\ppe\scale\proj
源码路径:
sdk\samples\peripheral\ppe\scale\src
初始化
初始化流程包含在 PPE_test()
中。
初始化存储待缩放图片和缩放结果的结构体
ppe_buffer_t
中的数据。
ppe_buffer_t target, source; memset(&target, 0, sizeof(ppe_buffer_t)); memset(&source, 0, sizeof(ppe_buffer_t));
在待缩放图片的
ppe_buffer_t
结构体中填充信息。
source.address = (uint32_t) source_buffer; source.memory = source_buffer; source.format = PPE_ABGR8888; source.width = 64; source.height = 64; source.stride = source.width;
在待输出图片的
ppe_buffer_t
结构体中填充信息。
target.address = (uint32_t) target_buffer; target.memory = target_buffer; target.format = PPE_ABGR8888;
在决定待缩放图片在水平方向和垂直方向的缩放比例后,调用API
PPE_Scale()
开始进行缩放。
float horizontal_ratio = 2.5; float vertical_ratio = 0.8; PPE_ERR err = PPE_Scale(&source, &target, horizontal_ratio, vertical_ratio);
功能实现
当函数 PPE_Scale()
执行完成后,PPE运算的结果将会与仿真模拟的运算结果进行比较。如果产生数据不相符的情况,错误的数据会如 测试验证 章节所示在DebugAnalyzer工具中显示。