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) 示意图

A screen shot of a window Description automatically generated
  • 对齐

    硬件为了快速访问内存首地址或者跨行访问数据, 要求内存地址或内存跨度必须为对齐系数的倍数。

    • 数据内存首地址对齐

      当前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 单通道图像

_images/Functi003.png

图1-3 IVE_IMAGE_TYPE_YUV420P类型的IVE_IMAGE_S图像

_images/Functi004.png

图1-4 IVE_IMAGE_TYPE_YUV422P类型的IVE_IMAGE_S图像

_images/Functi005.png

图1-5 IVE_IMAGE_TYPE_U8C3_PACKAGE类型的IVE_IMAGE_S图像

_images/Functi006.png

图1-6 IVE_IMAGE_TYPE_U8C3_PLANAR类型的IVE_IMAGE_SRC图像

_images/Functi007.png