2. 功能概述¶
2.1. 目的¶
晶视智能Intelligent Video Engine (IVE) 是一种使用硬件去加速电脑视觉算法的模块 ,用户利用IVE开发智能分析方案可以加速智能分析的运算,降低RISC-V占用。当前IVE所提供 的算子可以支撑开发影像或视频的智能分析方案。
2.2. 定义及缩写¶
句柄 (handle)
用户在调用算子创建任务时,系统会为每个任务分配一个handle, 用于标识不同的任务的执行状态。
返回结果标志 (bInstant)
True表示Busy waiting mode, False表示Interrupt mode。
跨度 (stride)
与图像或二维数据的width度量一致的量,如图1-1所示。
IVE_IMAGE_S 图像数据跨度,表示图像一行以“像素”计算的单元个数,“像素”位宽 可以是 8bit,16bit 等。
IVE_DATA_S 二维数据跨度,表示二维数据一行的字节数,即为图1-1中n=8的情况。
图1-1跨度 (stride) 示意图

对齐
硬件为了快速访问内存首地址或者跨行访问数据, 要求内存地址或内存跨度必须为对齐系数的倍数。
数据内存首地址对齐
当前IVE算子对其输入输出要求16像素对齐
跨度对齐
对于二维广义图像、二维单分量数据以及一维数组数据的跨度均必须满足16像素对齐。
输入输出数据类型
类型 |
图像描述 |
内存地址 |
跨度 |
---|---|---|---|
IVE_IMAGE_TYPE_U8C1 |
8bit无符号单通道图像 图1-2 |
仅用到IVE_IMAGE_S中u64PhyAddr[0]、u64VirAddr[0] |
仅用到u32Stride[0] |
IVE_IMAGE_TYPE_S8C1 |
8bit有符号单通道图像 图1-2 |
仅用到IVE_IMAGE_S中u64PhyAddr[0]、u64VirAddr[0] |
仅用到u32Stride[0] |
IVE_IMAGE_TYPE_YUV420SP |
YCbCr420 Semi-Planar 数据格式图像 |
内存地址用到 IVE_IMAGE_S 中的 u64PhyAddr[0]、 u64VirAddr[0](亮度 Y),u64PhyAddr[1]、 u64VirAddr[1](色度 U, V) |
跨度用到 u32Stride[0](亮 度跨度)、 u32Stride[1](色 度U, V跨度) |
IVE_IMAGE_TYPE_YUV422SP |
YCbCr422 Semi-Planar 数据格式图像 |
内存地址用到 IVE_IMAGE_S 中的 u64PhyAddr[0]、 u64VirAddr[0](亮度 Y),u64PhyAddr[1]、 u64VirAddr[1](色度 U, V) |
跨度用到 u32Stride[0](亮 度跨度)、 u32Stride[1](色 度U, V跨度) |
IVE_IMAGE_TYPE_YUV420P |
YCbCr420 Planar 数据格式图像,图1-3 |
内存地址用到 IVE_IMAGE_S 中的 u64PhyAddr[0]、 u64VirAddr[0](亮度 Y),u64PhyAddr[1]、 u64VirAddr[1](色度 U) 和 u64PhyAddr[2]、 u64VirAddr[2](色度 V) |
跨度用到 u32Stride[0](亮 度跨度)、 u32Stride[1](色 度U跨度)和 u32Stride[2](色 度V跨度) |
IVE_IMAGE_TYPE_YUV422P |
YCbCr422 Planar 数据格式图像,图1-4 |
内存地址用到 IVE_IMAGE_S 中的 u64PhyAddr[0]、 u64VirAddr[0](亮度 Y),u64PhyAddr[1]、 u64VirAddr[1](色度 U) 和 u64PhyAddr[2]、 u64VirAddr[2](色度 V) |
跨度用到 u32Stride[0](亮 度跨度)、 u32Stride[1](色 度U跨度)和 u32Stride[2](色 度V跨度) |
IVE_IMAGE_TYPE_U8C2_PACKAGE |
8bit无符号二通道且以Package格式存储的图像 |
内存地址仅用到 IVE_IMAGE_S 中的 u64PhyAddr[0]、 u64VirAddr[0] |
跨度仅用到 u32Stride[0] |
IVE_IMAGE_TYPE_U8C2_PLANAR |
8bit无符号二通道且以Planar格式存储的图像 |
内存地址仅用到IVE_IMAGE_S中的 u64PhyAddr[0]、 u64VirAddr[0],u64PhyAddr[1]、 u64VirAddr[1] |
跨度仅用到 u32Stride[0]、u32Stride[1] |
IVE_IMAGE_TYPE_S16C1 |
16bit有符号单通道图像图1-2 |
仅用到IVE_IMAGE_S中u64PhyAddr[0]、u64VirAddr[0] |
仅用到u32Stride[0] |
IVE_IMAGE_TYPE_U16C1 |
16bit无符号单通道图像图1-2 |
仅用到IVE_IMAGE_S中u64PhyAddr[0]、u64VirAddr[0] |
仅用到u32Stride[0] |
IVE_IMAGE_TYPE_U8C3_PACKAGE |
8bit无符号三通道且以Package格式存储的图像, 图1-5 |
内存地址仅用到 IVE_IMAGE_S 中的 u64PhyAddr[0]、 u64VirAddr[0] |
跨度仅用到 u32Stride[0] |
IVE_IMAGE_TYPE_U8C3_PLANAR |
8bit无符号三通道且以Planar格式存储的图像,图1-6 |
内存地址仅用到IVE_IMAGE_S中的 u64PhyAddr[0]、 u64VirAddr[0],u64PhyAddr[1]、 u64VirAddr[1],u64PhyAddr[2]、 u64VirAddr[2]; |
跨度仅用到 u32Stride[0]、u32Stride[1]、u32Stride[2] |
IVE_IMAGE_TYPE_S32C1 |
32bit有符号单通道图像图1-2 |
仅用到IVE_IMAGE_S中u64PhyAddr[0]、u64VirAddr[0] |
仅用到u32Stride[0] |
IVE_IMAGE_TYPE_U32C1 |
32bit无符号单通道图像图1-2 |
仅用到IVE_IMAGE_S中u64PhyAddr[0]、u64VirAddr[0] |
仅用到u32Stride[0] |
IVE_IMAGE_TYPE_S64C1 |
64bit有符号单通道图像图1-2 |
仅用到IVE_IMAGE_S中u64PhyAddr[0]、u64VirAddr[0] |
仅用到u32Stride[0] |
IVE_IMAGE_TYPE_U64C1 |
64bit无符号单通道图像图1-2 |
仅用到IVE_IMAGE_S中u64PhyAddr[0]、u64VirAddr[0] |
仅用到u32Stride[0] |
IVE_IMAGE_TYPE_BF16C1 |
16bit brain floating point 单通道图图1-2 |
仅用到IVE_IMAGE_S中u64PhyAddr[0]、u64VirAddr[0] |
仅用到u32Stride[0] |
IVE_IMAGE_TYPE_FP32C1 |
32bit floating point 单通道图 图1-2 |
仅用到IVE_IMAGE_S中u64PhyAddr[0]、u64VirAddr[0] |
仅用到u32Stride[0] |
图1-2 单通道图像

图1-3 IVE_IMAGE_TYPE_YUV420P类型的IVE_IMAGE_S图像

图1-4 IVE_IMAGE_TYPE_YUV422P类型的IVE_IMAGE_S图像

图1-5 IVE_IMAGE_TYPE_U8C3_PACKAGE类型的IVE_IMAGE_S图像

图1-6 IVE_IMAGE_TYPE_U8C3_PLANAR类型的IVE_IMAGE_SRC图像
