海思IVE硬件加速算子使用

如若算子涉及使用的图像类型为海思私有格式,可直接内存拷贝后使用。

如若算子涉及使用的图像为文件流操作读入uchar中则需经过以下操作进行写入海思私有格式中(代码参考如下)

 

        1、MPI_Init

//mpi初始化
        s32Ret = HI_MPI_VB_SetConf(&struVbConf);
	if (HI_SUCCESS != s32Ret)
	{
		SAMPLE_PRT("HI_MPI_VB_SetConf fail,Error(%#x)\n", s32Ret);
		return s32Ret;
	}
	s32Ret = HI_MPI_VB_Init();
	if (HI_SUCCESS != s32Ret)
	{
		SAMPLE_PRT("HI_MPI_VB_Init fail,Error(%#x)\n", s32Ret);
		return s32Ret;
	}
	struSysConf.u32AlignWidth = 64;
	s32Ret = HI_MPI_SYS_SetConf(&struSysConf);
	if (HI_SUCCESS != s32Ret)
	{
		SAMPLE_PRT("HI_MPI_SYS_SetConf fail,Error(%#x)\n", s32Ret);
		(HI_VOID)HI_MPI_VB_Exit();
		return s32Ret;
	}

	s32Ret = HI_MPI_SYS_Init();
	if (HI_SUCCESS != s32Ret)
	{
		SAMPLE_PRT("HI_MPI_SYS_Init fail,Error(%#x)\n", s32Ret);
		(HI_VOID)HI_MPI_VB_Exit();
		return s32Ret;
	}

        2、初始化IVE中涉及使用的变量

//初始化变量
        s32Ret = HISI_IVE_CreateImageByCached(&(pstSobel->stSrc1), IVE_IMAGE_TYPE_U8C1, u16Width, u16Height);
	if (s32Ret != HI_SUCCESS)
	{
		SAMPLE_PRT("HISI_IVE_CreateImageByCached fail\n");
		goto SOBEL_INIT_FAIL;
	}
	s32Ret = HISI_IVE_CreateImageByCached(&(pstSobel->stSrc2), IVE_IMAGE_TYPE_U8C1, u16Width, u16Height);
	if (s32Ret != HI_SUCCESS)
	{
		SAMPLE_PRT("HISI_IVE_CreateImageByCached fail\n");
		goto SOBEL_INIT_FAIL;
	}
    
        HI_S32 HISI_IVE_CreateImageByCached(IVE_IMAGE_S* pstImg,IVE_IMAGE_TYPE_E enType, HI_U16 u16Width, HI_U16 u16Height)
{
	HI_U32 u32Size = 0;
	HI_S32 s32Ret;
	if (NULL == pstImg)
	{
		SAMPLE_PRT("pstImg is null\n");
		return HI_FAILURE;
	}

	pstImg->enType = enType;
	pstImg->u16Width = u16Width;
	pstImg->u16Height = u16Height;
	pstImg->u16Stride[0] = HISI_IVE_CalcStride(pstImg->u16Width, IVE_ALIGN);

	switch (enType)
	{
	    case IVE_IMAGE_TYPE_U8C1:
	    case IVE_IMAGE_TYPE_S8C1:
	    {
		    u32Size = pstImg->u16Stride[0] * pstImg->u16Height;
		    s32Ret = HI_MPI_SYS_MmzAlloc_Cached(&pstImg->u32PhyAddr[0], (void**)&pstImg->pu8VirAddr[0], NULL, HI_NULL, u32Size);
		    if (s32Ret != HI_SUCCESS)
		    {
		        SAMPLE_PRT("Mmz Alloc fail,Error(%#x)\n", s32Ret);
			return s32Ret;
		    }
	    }
		

	}

	return HI_SUCCESS;

}

        3、将uchar读入至私有格式中

//读入私有格式
        switch (pstImg->enType)
	{
		case  IVE_IMAGE_TYPE_U8C1:
		{
			pU8 = pstImg->pu8VirAddr[0];
			//for (y = 0; y < height; y++)
			{
				memcpy(pU8, frame_src, width * height);

				//pU8 += pstImg->u16Stride[0];
			}
		}
                	break;
		case  IVE_IMAGE_TYPE_YUV420SP:
		{
			pU8 = pstImg->pu8VirAddr[0];
			for (y = 0; y < height; y++)
			{
				memcpy(pU8, frame_src, width);

				pU8 += pstImg->u16Stride[0];
			}

			pU8 = pstImg->pu8VirAddr[1];
			for (y = 0; y < height / 2; y++)
			{
				memcpy(pU8, frame_src, width);

				pU8 += pstImg->u16Stride[1];
			}
		}
        }

        4、IVE算子的调用

              算子调用请见海思标准IVE api文档

  • 0
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
### 回答1: 海思IVE_SVP_IVS开发手册.zip是一本关于海思芯片相关开发的手册。海思是华为公司的芯片子公司,致力于推动人工智能与云计算技术在各行业的应用。IVE(Intelligent Video Engine)是其推出的一种高性能、低功耗、高效率的视频处理引擎。SVP(Smart Video Platform)是基于IVE开发的一种智能视频处理平台。IVS(Intelligent Video Surveillance)则是海思针对视频监控行业推出的一种解决方案。 海思IVE_SVP_IVS开发手册为开发者提供了详细的技术规格和应用案例,让其更好地理解和应用IVE、SVP和IVS技术。手册中包含了海思芯片的硬件架构、软件架构、接口介绍、软件开发环境的设置和使用方法等内容。此外,手册还介绍了IVE、SVP和IVS的常见应用场景,如人脸识别、车辆识别、行为分析等。 总之,海思IVE_SVP_IVS开发手册.zip是一本非常有价值的技术手册,对于研究和开发基于海思芯片的视频处理技术的人员来说具有很大的帮助。无论是从理论知识方面,还是从技术应用方面,它都将使开发者更加熟练地应用IVE、SVP和IVS技术,进一步提升其研发能力和技术水平。 ### 回答2: 海思ive_svp_ivs开发手册.zip是一份关于海思SVP平台上的智能视频分析算法开发的手册。该手册详细介绍了SVP平台的各种算法框架,以及如何使用SVP平台上的工具进行开发和调试。手册中包含了很多实用的示例和代码,可以帮助开发人员快速掌握SVP平台上的开发技巧。 此外,该手册也提供了一些使用建议,包括如何进行代码管理、测试和调试、代码优化等方面。这些内容对于开发人员们在开发中会遇到许多问题,提供了一些建议和指导。手册还详细说明了SVP平台上的优势和应用场景,这可以让开发人员更好地理解SVP平台的特点和优势,并为实际应用场景做出相应的开发和调试更好地。 总的来说,海思ive_svp_ivs开发手册.zip是一份非常有价值的开发指南,它不仅提供了相关的开发工具和示例代码,还提供了许多实用的应用建议和优化技巧,非常适合SVP平台上开发智能视频分析算法的开发人员使用。 ### 回答3: 海思ive_svp_ivs开发手册.zip是一份开发手册,专为海思公司旗下的IVE(SVP)智能视频引擎及IVS(智能视频分析)服务而设计的。使用这份手册,开发人员可以掌握IVE和IVS系列产品的开发流程以及使用方法。该手册除了介绍IVE和IVS的理论知识外,还提供了具体的开发指导和实例代码,从而有助于开发人员快速准确地实现相关功能。 该手册主要分为以下几个部分:首先是IVE和IVS的基础知识介绍,包括相关术语解释、工作原理、功能分类等。其次是IVE和IVS的安装与配置,包括软件和硬件环境的配置、IVE SDK的安装等。接着是IVE和IVS的开发指南,包括IVS算法开发指南、IVE应用开发指南等。最后是附录部分,包含了相关技术规范、开发示例、API参考文档等。 综上所述,海思ive_svp_ivs开发手册.zip是一份非常实用的开发指南,对于想要开发和应用IVE和IVS产品的开发人员来说非常有用。通过阅读手册中的内容,开发人员可以更好地理解和掌握IVE和IVS的工作原理,有助于提升开发效率和开发质量,同时也能够推动智能视频领域的发展和创新。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值