1### 4.1.1 IVE概述 2 3IVE(IntelligentVideoEngine)是上海海思媒体处理芯片智能分析系统中的硬件加速模块。用户基于IVE开发智能分析方案可以加速智能分析,降低CPU占用。当前IVE提供的算子可以支撑开发视频诊断、周界防范等智能分析方案。 4 5IVE模块提供了创建任务和查询任务的基本接口。该部分接口较多,详细API使用请参考**源码的device/soc/hisilicon/hi3516dv300/sdk_linux/sample/doc中**的《HiIVE API 参考.pdf》第2章API参考内容,支持的API接口如下表所示: 6 7| API | Function | 8| ------------------------------------- | ------------------------------------------------------------ | 9| HI_MPI_IVE_DMA | 创建直接内存访问任务。 | 10| HI_MPI_IVE_Filter | 创建5x5模板滤波任务,通过配置不同的模板系数,可以实现不同的滤波。 | 11| HI_MPI_IVE_CSC | 创建色彩空间转换任务,可实现YUV2RGB\YUV2HSV\YUV2LAB\RGB2YUV的色彩空间转换。 | 12| HI_MPI_IVE_FilterAndCSC | 创建5x5模板滤波和YUV2RGB色彩空间转换复合任务,通过一次创建完成两种功能。 | 13| HI_MPI_IVE_Sobel | 创建5x5模板Sobel-like梯度计算 | 14| HI_MPI_IVE_MagAndAng | 创建5x5模板梯度幅值与幅角计算任务。 | 15| HI_MPI_IVE_Dilate | 创建二值图像5x5模板膨胀任务。 | 16| HI_MPI_IVE_Erode | 创建二值图像5x5模板腐蚀任务。 | 17| HI_MPI_IVE_Thresh | 创建灰度图像阈值化任务。 | 18| HI_MPI_IVE_And | 创建两二值图像相与任务。 | 19| HI_MPI_IVE_Sub | 创建两灰度图像相减任务。 | 20| HI_MPI_IVE_Or | 创建两二值图像相或任务。 | 21| HI_MPI_IVE_Integ | 创建灰度图像的积分图计算任务。 | 22| HI_MPI_IVE_Hist | 创建灰度图像的直方图统计任务。 | 23| HI_MPI_IVE_Thresh_S16 | 创建S16数据到8bit数据的阈值化任务。 | 24| HI_MPI_IVE_Thresh_U16 | 创建U16数据到U8数据的阈值化任务。 | 25| HI_MPI_IVE_16BitTo8Bit | 创建16bit图像数据到8bit图像数据的线性转化任务。 | 26| HI_MPI_IVE_OrdStatFilter | 创建3x3模板顺序统计量滤波任务,可进行Median、Max、Min滤波。 | 27| HI_MPI_IVE_Map | 创建Map(映射赋值)任务,对源图像中的每个像素,查找Map查找表中的值,赋予目标图像相应像素查找表中的值,支持U8C1U8C1映射 | 28| HI_MPI_IVE_Map | 创建Map(映射赋值)任务,对源图像中的每个像素,查找Map查找表中的值,赋予目标图像相应像素查找表中的值,支持U8C1U8C1、U8C1U16C1、U8C1S16C1 3种模式的映射 | 29| HI_MPI_IVE_EqualizeHist | 创建灰度图像的直方图均衡化计算任务。 | 30| HI_MPI_IVE_Add | 创建两灰度图像的加权加计算任务。 | 31| HI_MPI_IVE_Xor | 创建两二值图的异或计算任务。 | 32| HI_MPI_IVE_NCC | 创建两相同分辨率灰度图像的归一化互相关系数计算任务。 | 33| HI_MPI_IVE_CCL | 创建二值图像的连通区域标记任务。 | 34| HI_MPI_IVE_GMM | 创建GMM背景建模任务,支持灰度图、RGB_PACKAGE图像的GMM背景建模,高斯模型个数为3或者5。 | 35| HI_MPI_IVE_GMM2 | 创建GMM背景建模任务,支持1-5个高斯模型,支持灰度图和RGB_PACKAGE图输入,支持全局及像素级别的灵敏度系数以及前景模型时长更新系数。 | 36| HI_MPI_IVE_CannyHysEdge | 灰度图的Canny边缘提取的前半部:求梯度、计算梯度幅值幅角、磁滞阈值化及非极大抑制。 | 37| HI_MPI_IVE_CannyEdge | 灰度图的Canny边缘提取的后半部:连接边缘点,形成Canny边缘图。 | 38| HI_MPI_IVE_LBP | 创建LBP计算任务。 | 39| HI_MPI_IVE_NormGrad | 创建归一化梯度计算任务,梯度分量均归一化到S8。 | 40| HI_MPI_IVE_LKOpticalFlow | 创建单层LK光流计算任务。 | 41| HI_MPI_IVE_LKOpticalFlowPyr | 创建多层金字塔LK光流计算任务。 | 42| HI_MPI_IVE_STCandiCorner | 灰度图像Shi-Tomasi-like角点计算的前半部:计算候选角点。 | 43| HI_MPI_IVE_STCorner | 灰度图像Shi-Tomasi-like角点计算的后半部:按规则挑选角点。 | 44| HI_MPI_IVE_SAD | 计算两幅图像按4x4\8x8\16x16分块的16 bit\8 bit SAD图像,以及对SAD进行阈值化输出。 | 45| HI_MPI_IVE_Resize | 创建图像缩放任务,支持bilinear、area插值缩放,支持多张U8C1\U8C3_PLANAR图像同时输入做一种类型的缩放。 | 46| HI_MPI_IVE_Resize2 | 创建图像缩放任务,支持bilinear插值缩放,支持多张U8C1图像同时缩放。 | 47| HI_MPI_IVE_GradFg | 根据背景图像和当前帧图像的梯度信息计算梯度前景图像。 | 48| HI_MPI_IVE_MatchBgModel | 基于Codebook演进的背景模型匹配。 | 49| HI_MPI_IVE_UpdateBgModel | 基于Codebook演进的背景模型更新,对背景模型的内部状态进行更新。 | 50| HI_MPI_IVE_ANN_MLP_LoadModel | 读取ANN_MLP模型文件,初始化模型数据。 | 51| HI_MPI_IVE_ANN_MLP_UnloadModel | 去初始化ANN模型数据。 | 52| HI_MPI_IVE_ANN_MLP_Predict | 创建单个样本ANN_MLP预测任务。 | 53| HI_MPI_IVE_ANN_MLP_Predict | 创建同一模型多个样本ANN_MLP预测任务。 | 54| HI_MPI_IVE_SVM_LoadModel | 读取SVM模型文件,初始化模型数据。 | 55| HI_MPI_IVE_SVM_UnloadModel | 去初始化SVM模型数据。 | 56| HI_MPI_IVE_SVM_Predict | 创建单个样本SVM预测任务。 | 57| HI_MPI_IVE_SVM_Predict | 创建同一模型的多个样本SVM预测任务。 | 58| HI_MPI_IVE_CNN_LoadModel | 读取CNN模型文件,初始化CNN模型数据。 | 59| HI_MPI_IVE_CNN_UnloadModel | 去初始化CNN模型数据。 | 60| HI_MPI_IVE_CNN_Predict | 创建一个CNN模型的单个或多个样本预测任务,并输出特征向量。 | 61| HI_MPI_IVE_CNN_GetResult | 接收CNN_Predict结果,执行Softmax运算来预测每个样本图像的类别,并输出置信度最高的类别(Rank-1)以及对应的置信度。 | 62| HI_MPI_IVE_PerspTrans | 根据输入源图的区域位置和点对信息做相应的透视变换。 | 63| HI_MPI_IVE_KCF_GetMemSize | 获取需要创建目标对象数的内存大小。 | 64| HI_MPI_IVE_KCF_CreateObjList | 创建目标链表。 | 65| HI_MPI_IVE_KCF_DestroyObjList | 销毁目标链表。 | 66| HI_MPI_IVE_KCF_CreateGaussPeak | 创建高斯峰值。 | 67| HI_MPI_IVE_KCF_CreateCosWin | 创建汉宁窗。 | 68| HI_MPI_IVE_KCF_GetTrainObj | 获取需要训练的目标对象。 | 69| HI_MPI_IVE_KCF_Process | 提交目标给硬件处理。 | 70| HI_MPI_IVE_KCF_GetObjBbox | 获取目标区域跟踪结果信息。 | 71| HI_MPI_IVE_KCF_JudgeObjBboxTrackState | 判断目标区域跟踪状态。 | 72| HI_MPI_IVE_KCF_ObjUpdate | 更新目标信息。 | 73| HI_MPI_IVE_Hog | 计算给定区域的HOG(Histogram of Oriented Gradient)特征。 | 74| HI_MPI_IVE_Query | 查询已创建任务完成情况。 | 75 76关于IVE部分的Proc调试方法请参考**源码的device/soc/hisilicon/hi3516dv300/sdk_linux/sample/doc中**的《HiIVE API 参考.pdf》第5章Proc调试信息即可。 77 78