CORE METRICS / I2D / PERFORMANCE
I2D
图像旋转、镜像、翻转与像素格式转换性能
典型集成口径下,NV12 1920×1080 可达 38 fps,RAW8 可达 57 fps,适合 30 fps 实时处理。
YUV422 和 RGB565 在 1920×1080 下为 29 fps;ARGB8888 为 14 fps。
旋转叠加上下翻转、左右镜像几乎不增加耗时,选型时可按单次旋转估算。
默认 cache 维护使单帧耗时增加约 47%,整机规划应优先参考“典型集成”数据。
除特别说明外,以下数据使用“典型集成”口径:中间件开启 cache 维护,单帧耗时为 im_i2d_process() 从入口到返回的总开销。
FORMAT & RESOLUTION
一、按格式与分辨率选择
每组数值为“帧率 fps / 单帧耗时 ms”。先按实际像素格式和目标分辨率查表,再结合目标帧率判断余量。
典型集成口径(计入 cache 维护)
| 像素格式 | 1280×720 | 1280×1280 | 1920×1080 | 2560×1920 | 3840×2160 |
|---|---|---|---|---|---|
| NV12 | 84 fps 11.91 ms | 48 fps 20.62 ms | 38 fps 26.08 ms | 16 fps 61.39 ms | 10 fps 103.79 ms |
| YUV422 | 64 fps 15.58 ms | 36 fps 27.45 ms | 29 fps 34.71 ms | 12 fps 82.04 ms | 未取得数据 |
| RGB565 | 64 fps 15.61 ms | 36 fps 27.42 ms | 29 fps 34.71 ms | 12 fps 81.99 ms | 未取得数据 |
| ARGB8888 | 32 fps 31.11 ms | 18 fps 55.11 ms | 14 fps 69.23 ms | 未取得数据 | 未取得数据 |
| RAW8 | 124 fps 8.04 ms | 73 fps 13.74 ms | 57 fps 17.48 ms | 24 fps 40.97 ms | 14 fps 69.23 ms |
“未取得数据”表示测试环境内存不足,不代表芯片不支持该格式或分辨率。
ROTATION / FLIP / MIRROR
二、几何操作是否增加耗时
结论是几乎不增加。同格式、同分辨率下,旋转 90° 与叠加上下翻转、左右镜像的处理耗时差异小于 1.5%,大部分组合差异小于 0.1 ms。
开发者只需要按“旋转”估算能力,不必为镜像和翻转预留额外性能。以下以 NV12 1920×1080、典型集成口径为例。
| 操作组合 | 单帧耗时 | 相对旋转 90° |
|---|---|---|
| 旋转 90° | 26.08 ms | 基准 |
| 旋转 90° + 上下翻转 | 26.05 ms | -0.03 ms |
| 旋转 90° + 左右镜像 | 26.05 ms | -0.03 ms |
| 旋转 90° + 上下翻转 + 左右镜像 | 26.05 ms | -0.03 ms |
CACHE & CONCURRENCY
三、并发配置
I2D 与 IPU 并发
并发运行时,提高 outstanding_limit 会改善 I2D 帧率,但会拉长 IPU 单帧耗时。开发者应按照两条链路的业务优先级选择,而不是直接使用最大档位。
以下数据使用 1280×1280,几何为旋转 180° + 上下翻转。
| outstanding | NV12:I2D | NV12:IPU | RAW8:I2D | RAW8:IPU |
|---|---|---|---|---|
| 1 | 35 fps | 38 fps | 53 fps | 38 fps |
| 4 | 50 fps | 24 fps | 74 fps | 24 fps |
| 16 | 58 fps | 13 fps | 87 fps | 13 fps |
| 32 | 63 fps | 8 fps | 92 fps | 9 fps |
| 64 | 63 fps | 8 fps | 92 fps | 9 fps |
建议开发者先以 outstanding=16 联调,再根据 I2D 与 IPU 的实际优先级调整。I2D 数据为同一竞争窗口内的结果;IPU 为引擎侧平均耗时,不包含 worker 的 cache 维护。
LARGE RESOLUTION
四、大分辨率与内存边界
下表给出 32 MiB 测试内存条件下可跑通的最大尺寸。“最大可测尺寸”是测试环境边界,不是芯片规格上限;超出该尺寸需要重新核算系统内存预算。
| 格式 | 最大可测尺寸 | 缓冲占用 | 帧时 / 帧率 |
|---|---|---|---|
| NV12 | 4392×2464 | 32,465,664 B | 93 ms / 11 fps |
| YUV422 | 3804×2136 | 32,501,376 B | 93 ms / 11 fps |
| RGB565 | 3804×2136 | 32,501,376 B | 93 ms / 11 fps |
| ARGB8888 | 2690×1512 | 32,538,240 B | 94 ms / 11 fps |
| RAW8 | 5384×3024 | 32,562,432 B | 94 ms / 11 fps |
no mem 表示在当前测试程序与 32 MiB 内存限制下无法申请到缓冲,不能直接解释为芯片不支持该格式或分辨率。TEST METHOD
五、测试说明
测试通过中间件接口执行,源图在内存中合成,源缓冲与目的缓冲均按 64 字节对齐。主表数据来自 I2D 单独工作场景,帧率为同一帧微秒均值换算结果。
调用路径:im_i2d_init() → im_i2d_process()。
几何组合:旋转 90°、旋转 90° + 上下翻转、旋转 90° + 左右镜像、旋转 90° + 上下翻转 + 左右镜像。
测试规模:5 种格式 × 5 档分辨率 × 4 种几何,共 100 个组合;84 个组合取得有效数据,16 个组合因测试环境内存不足未取得数据。
原始测试日志、完整表格和过程截图保留在研发报告中,对外页面默认不展示过程截图。