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