11bd4fe43Sopenharmony_ci### 4.1.1 IVE概述 21bd4fe43Sopenharmony_ci 31bd4fe43Sopenharmony_ciIVE(IntelligentVideoEngine)是上海海思媒体处理芯片智能分析系统中的硬件加速模块。用户基于IVE开发智能分析方案可以加速智能分析,降低CPU占用。当前IVE提供的算子可以支撑开发视频诊断、周界防范等智能分析方案。 41bd4fe43Sopenharmony_ci 51bd4fe43Sopenharmony_ciIVE模块提供了创建任务和查询任务的基本接口。该部分接口较多,详细API使用请参考**源码的device/soc/hisilicon/hi3516dv300/sdk_linux/sample/doc中**的《HiIVE API 参考.pdf》第2章API参考内容,支持的API接口如下表所示: 61bd4fe43Sopenharmony_ci 71bd4fe43Sopenharmony_ci| API | Function | 81bd4fe43Sopenharmony_ci| ------------------------------------- | ------------------------------------------------------------ | 91bd4fe43Sopenharmony_ci| HI_MPI_IVE_DMA | 创建直接内存访问任务。 | 101bd4fe43Sopenharmony_ci| HI_MPI_IVE_Filter | 创建5x5模板滤波任务,通过配置不同的模板系数,可以实现不同的滤波。 | 111bd4fe43Sopenharmony_ci| HI_MPI_IVE_CSC | 创建色彩空间转换任务,可实现YUV2RGB\YUV2HSV\YUV2LAB\RGB2YUV的色彩空间转换。 | 121bd4fe43Sopenharmony_ci| HI_MPI_IVE_FilterAndCSC | 创建5x5模板滤波和YUV2RGB色彩空间转换复合任务,通过一次创建完成两种功能。 | 131bd4fe43Sopenharmony_ci| HI_MPI_IVE_Sobel | 创建5x5模板Sobel-like梯度计算 | 141bd4fe43Sopenharmony_ci| HI_MPI_IVE_MagAndAng | 创建5x5模板梯度幅值与幅角计算任务。 | 151bd4fe43Sopenharmony_ci| HI_MPI_IVE_Dilate | 创建二值图像5x5模板膨胀任务。 | 161bd4fe43Sopenharmony_ci| HI_MPI_IVE_Erode | 创建二值图像5x5模板腐蚀任务。 | 171bd4fe43Sopenharmony_ci| HI_MPI_IVE_Thresh | 创建灰度图像阈值化任务。 | 181bd4fe43Sopenharmony_ci| HI_MPI_IVE_And | 创建两二值图像相与任务。 | 191bd4fe43Sopenharmony_ci| HI_MPI_IVE_Sub | 创建两灰度图像相减任务。 | 201bd4fe43Sopenharmony_ci| HI_MPI_IVE_Or | 创建两二值图像相或任务。 | 211bd4fe43Sopenharmony_ci| HI_MPI_IVE_Integ | 创建灰度图像的积分图计算任务。 | 221bd4fe43Sopenharmony_ci| HI_MPI_IVE_Hist | 创建灰度图像的直方图统计任务。 | 231bd4fe43Sopenharmony_ci| HI_MPI_IVE_Thresh_S16 | 创建S16数据到8bit数据的阈值化任务。 | 241bd4fe43Sopenharmony_ci| HI_MPI_IVE_Thresh_U16 | 创建U16数据到U8数据的阈值化任务。 | 251bd4fe43Sopenharmony_ci| HI_MPI_IVE_16BitTo8Bit | 创建16bit图像数据到8bit图像数据的线性转化任务。 | 261bd4fe43Sopenharmony_ci| HI_MPI_IVE_OrdStatFilter | 创建3x3模板顺序统计量滤波任务,可进行Median、Max、Min滤波。 | 271bd4fe43Sopenharmony_ci| HI_MPI_IVE_Map | 创建Map(映射赋值)任务,对源图像中的每个像素,查找Map查找表中的值,赋予目标图像相应像素查找表中的值,支持U8C1U8C1映射 | 281bd4fe43Sopenharmony_ci| HI_MPI_IVE_Map | 创建Map(映射赋值)任务,对源图像中的每个像素,查找Map查找表中的值,赋予目标图像相应像素查找表中的值,支持U8C1U8C1、U8C1U16C1、U8C1S16C1 3种模式的映射 | 291bd4fe43Sopenharmony_ci| HI_MPI_IVE_EqualizeHist | 创建灰度图像的直方图均衡化计算任务。 | 301bd4fe43Sopenharmony_ci| HI_MPI_IVE_Add | 创建两灰度图像的加权加计算任务。 | 311bd4fe43Sopenharmony_ci| HI_MPI_IVE_Xor | 创建两二值图的异或计算任务。 | 321bd4fe43Sopenharmony_ci| HI_MPI_IVE_NCC | 创建两相同分辨率灰度图像的归一化互相关系数计算任务。 | 331bd4fe43Sopenharmony_ci| HI_MPI_IVE_CCL | 创建二值图像的连通区域标记任务。 | 341bd4fe43Sopenharmony_ci| HI_MPI_IVE_GMM | 创建GMM背景建模任务,支持灰度图、RGB_PACKAGE图像的GMM背景建模,高斯模型个数为3或者5。 | 351bd4fe43Sopenharmony_ci| HI_MPI_IVE_GMM2 | 创建GMM背景建模任务,支持1-5个高斯模型,支持灰度图和RGB_PACKAGE图输入,支持全局及像素级别的灵敏度系数以及前景模型时长更新系数。 | 361bd4fe43Sopenharmony_ci| HI_MPI_IVE_CannyHysEdge | 灰度图的Canny边缘提取的前半部:求梯度、计算梯度幅值幅角、磁滞阈值化及非极大抑制。 | 371bd4fe43Sopenharmony_ci| HI_MPI_IVE_CannyEdge | 灰度图的Canny边缘提取的后半部:连接边缘点,形成Canny边缘图。 | 381bd4fe43Sopenharmony_ci| HI_MPI_IVE_LBP | 创建LBP计算任务。 | 391bd4fe43Sopenharmony_ci| HI_MPI_IVE_NormGrad | 创建归一化梯度计算任务,梯度分量均归一化到S8。 | 401bd4fe43Sopenharmony_ci| HI_MPI_IVE_LKOpticalFlow | 创建单层LK光流计算任务。 | 411bd4fe43Sopenharmony_ci| HI_MPI_IVE_LKOpticalFlowPyr | 创建多层金字塔LK光流计算任务。 | 421bd4fe43Sopenharmony_ci| HI_MPI_IVE_STCandiCorner | 灰度图像Shi-Tomasi-like角点计算的前半部:计算候选角点。 | 431bd4fe43Sopenharmony_ci| HI_MPI_IVE_STCorner | 灰度图像Shi-Tomasi-like角点计算的后半部:按规则挑选角点。 | 441bd4fe43Sopenharmony_ci| HI_MPI_IVE_SAD | 计算两幅图像按4x4\8x8\16x16分块的16 bit\8 bit SAD图像,以及对SAD进行阈值化输出。 | 451bd4fe43Sopenharmony_ci| HI_MPI_IVE_Resize | 创建图像缩放任务,支持bilinear、area插值缩放,支持多张U8C1\U8C3_PLANAR图像同时输入做一种类型的缩放。 | 461bd4fe43Sopenharmony_ci| HI_MPI_IVE_Resize2 | 创建图像缩放任务,支持bilinear插值缩放,支持多张U8C1图像同时缩放。 | 471bd4fe43Sopenharmony_ci| HI_MPI_IVE_GradFg | 根据背景图像和当前帧图像的梯度信息计算梯度前景图像。 | 481bd4fe43Sopenharmony_ci| HI_MPI_IVE_MatchBgModel | 基于Codebook演进的背景模型匹配。 | 491bd4fe43Sopenharmony_ci| HI_MPI_IVE_UpdateBgModel | 基于Codebook演进的背景模型更新,对背景模型的内部状态进行更新。 | 501bd4fe43Sopenharmony_ci| HI_MPI_IVE_ANN_MLP_LoadModel | 读取ANN_MLP模型文件,初始化模型数据。 | 511bd4fe43Sopenharmony_ci| HI_MPI_IVE_ANN_MLP_UnloadModel | 去初始化ANN模型数据。 | 521bd4fe43Sopenharmony_ci| HI_MPI_IVE_ANN_MLP_Predict | 创建单个样本ANN_MLP预测任务。 | 531bd4fe43Sopenharmony_ci| HI_MPI_IVE_ANN_MLP_Predict | 创建同一模型多个样本ANN_MLP预测任务。 | 541bd4fe43Sopenharmony_ci| HI_MPI_IVE_SVM_LoadModel | 读取SVM模型文件,初始化模型数据。 | 551bd4fe43Sopenharmony_ci| HI_MPI_IVE_SVM_UnloadModel | 去初始化SVM模型数据。 | 561bd4fe43Sopenharmony_ci| HI_MPI_IVE_SVM_Predict | 创建单个样本SVM预测任务。 | 571bd4fe43Sopenharmony_ci| HI_MPI_IVE_SVM_Predict | 创建同一模型的多个样本SVM预测任务。 | 581bd4fe43Sopenharmony_ci| HI_MPI_IVE_CNN_LoadModel | 读取CNN模型文件,初始化CNN模型数据。 | 591bd4fe43Sopenharmony_ci| HI_MPI_IVE_CNN_UnloadModel | 去初始化CNN模型数据。 | 601bd4fe43Sopenharmony_ci| HI_MPI_IVE_CNN_Predict | 创建一个CNN模型的单个或多个样本预测任务,并输出特征向量。 | 611bd4fe43Sopenharmony_ci| HI_MPI_IVE_CNN_GetResult | 接收CNN_Predict结果,执行Softmax运算来预测每个样本图像的类别,并输出置信度最高的类别(Rank-1)以及对应的置信度。 | 621bd4fe43Sopenharmony_ci| HI_MPI_IVE_PerspTrans | 根据输入源图的区域位置和点对信息做相应的透视变换。 | 631bd4fe43Sopenharmony_ci| HI_MPI_IVE_KCF_GetMemSize | 获取需要创建目标对象数的内存大小。 | 641bd4fe43Sopenharmony_ci| HI_MPI_IVE_KCF_CreateObjList | 创建目标链表。 | 651bd4fe43Sopenharmony_ci| HI_MPI_IVE_KCF_DestroyObjList | 销毁目标链表。 | 661bd4fe43Sopenharmony_ci| HI_MPI_IVE_KCF_CreateGaussPeak | 创建高斯峰值。 | 671bd4fe43Sopenharmony_ci| HI_MPI_IVE_KCF_CreateCosWin | 创建汉宁窗。 | 681bd4fe43Sopenharmony_ci| HI_MPI_IVE_KCF_GetTrainObj | 获取需要训练的目标对象。 | 691bd4fe43Sopenharmony_ci| HI_MPI_IVE_KCF_Process | 提交目标给硬件处理。 | 701bd4fe43Sopenharmony_ci| HI_MPI_IVE_KCF_GetObjBbox | 获取目标区域跟踪结果信息。 | 711bd4fe43Sopenharmony_ci| HI_MPI_IVE_KCF_JudgeObjBboxTrackState | 判断目标区域跟踪状态。 | 721bd4fe43Sopenharmony_ci| HI_MPI_IVE_KCF_ObjUpdate | 更新目标信息。 | 731bd4fe43Sopenharmony_ci| HI_MPI_IVE_Hog | 计算给定区域的HOG(Histogram of Oriented Gradient)特征。 | 741bd4fe43Sopenharmony_ci| HI_MPI_IVE_Query | 查询已创建任务完成情况。 | 751bd4fe43Sopenharmony_ci 761bd4fe43Sopenharmony_ci关于IVE部分的Proc调试方法请参考**源码的device/soc/hisilicon/hi3516dv300/sdk_linux/sample/doc中**的《HiIVE API 参考.pdf》第5章Proc调试信息即可。 771bd4fe43Sopenharmony_ci 78