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查找表中的值,赋予目标图像相应像素查找表中的值,支持U8C1U8C1映射 |
281bd4fe43Sopenharmony_ci| HI_MPI_IVE_Map                        | 创建Map(映射赋值)任务,对源图像中的每个像素,查找Map查找表中的值,赋予目标图像相应像素查找表中的值,支持U8C1U8C1、U8C1U16C1、U8C1S16C1 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