海思方案HI3518E平台ISP调试环境搭建
- 格式:doc
- 大小:58.00 KB
- 文档页数:12
3518E平台的搭建海思的SDK提供了ISP调试的相关工具,降低了IPC开发ISP调试的难度。
初次搭建ISP调试环境,记录一下。
SDK版本:Hi3518_MPP_V1.0.A.0硬件平台:HI3518E_OV9732工具包:PQ_TOOL (Hi3518E_V100R001C01SPC0A0\01.software\pc\PQ_TOOL)文件说明:Hi3518_ITTB_MPP2_V1.0.A.0_B030.tgz 设备端工具; PQTools_V3.7.5.zip PC端工具环境搭建步骤:(1)将Hi3518_ITTB_MPP2_V1.0.A.0_B030.tgz拷贝至nfs共享目录名,解压后运行HiIspTool.sh脚本倘若用海思自带的工具出图像并调节ISP运行:#./HiIspTool.sh -a -p ov9732_720p_line.inips一下可以看到两个进程696 adminlvj 58488 S ./ittb_stream -p ov9732_720p_line.ini699 adminlvj 19676 S ./ittb_control倘若运行自己的工程出图像了,这时只需要运行一下命令即可。
ps一下可以看到一个进程699 adminlvj 19676 S ./ittb_control(2)PC端直接解压PQTools_V3.7.5.zip,运行HiPQTools.exe,输入选择sdk版本Hi3518_MPP_V1.0.A.0 ,输入设备IP,就可以连接上摄像头倘若运行了ittb_stream,可以PC端软件上打开视频图像窗口连接成功,至此,最简单的ISP调试环境搭建就完成了。
复杂的就是后面的ISP调节过程了。
备注:运行脚本的时候可能会报错,查看相关打印信息,将错误消除。
当前产品我们用的是HI3518E+OV9732,SDK中并没有提供相关的sensor库和相关的config文件,所以运行报错了!解决:将OV9732sensor库拷贝至Hi3518_ITTB_MPP2_V1.0.A.0/libs/下,将ov9732_720p_line.ini拷贝至Hi3518_ITTB_MPP2_V1.0.A.0/configs/下附录:ov9732_720p_line.ini[plain]view plaincopyprint?1.[sensor]2.Sensor_type =ov9732 ;the type of sensor3.Mode =0 ;LINE mode,mode = 0 ,WDR mode,mode =14.DllFile =libs/libsns_ov9732.so ;LineDllFile path5.6.[vi_dev]7.Input_mod =2 ;VI_INPUT_MODE_BT656 = 08. ;VI_INPUT_MODE_BT601,9. ;VI_INPUT_MODE_DIGITAL_CAMERA10.11.Work_mod =0 ;VI_WORK_MODE_1Multiplex = 012.13. ;VI_WORK_MODE_2Multiplex,14.15. ;VI_WORK_MODE_4Multiplexbine_mode =0 ;Y/C composite or separation mode18.19. ;VI_COMBINE_COMPOSITE = 0 /*Composite mode */20.21. ;VI_COMBINE_SEPARATE, /*Separate mode */22.p_mode =0 ;Component mode (single-component or dual-component)24.25. ;VI_COMP_MODE_SINGLE = 0, /*single component mode */26.27. ;VI_COMP_MODE_DOUBLE = 1, /*double component mode */28.29.Clock_edge =1 ;Clock edge mode (sampling on the rising or falling edge)30.31. ;VI_CLK_EDGE_SINGLE_UP=0, /*rising edge */32.33. ;VI_CLK_EDGE_SINGLE_DOWN, /*falling edge */34.35.Mask_num =2 ;Component mask37.Mask_0 =0xFFC0000038.39.Mask_1 =0x040.41.Scan_mode = 1;VI_SCAN_INTERLACED = 042.43. ;VI_SCAN_PROGRESSIVE,44.45.Data_seq =2 ;data sequence (ONLY for YUV format)46.47. ;----2th component U/V sequence in bt112048.49. ; VI_INPUT_DATA_VUVU = 0,50.51. ; VI_INPUT_DATA_UVUV,52.53. ;----input sequence for yuv54.55. ; VI_INPUT_DATA_UYVY = 0,56.59. ; VI_INPUT_DATA_YUYV,60.61. ; VI_INPUT_DATA_YVYU62.63.64.65.Vsync =1 ; vertical synchronization signal66.67. ;VI_VSYNC_FIELD = 0,68.69. ;VI_VSYNC_PULSE,70.71.VsyncNeg=0 ;Polarity of the vertical synchronization signal72.73. ;VI_VSYNC_NEG_HIGH = 0,74.75. ;VI_VSYNC_NEG_LOW /*if VIU_VSYNC_E76.77.Hsync =0 ;Attribute of the horizontal synchronization signal78.81. ;VI_HSYNC_PULSE,82.83.HsyncNeg =0 ;Polarity of the horizontal synchronization signal84.85. ;VI_HSYNC_NEG_HIGH = 0,86.87. ;VI_HSYNC_NEG_LOW88.89.VsyncValid =0 ;Attribute of the valid vertical synchronization signal90.91. ;VI_VSYNC_NORM_PULSE = 0,92.93. ;VI_VSYNC_VALID_SINGAL,94.95.VsyncValidNeg =0;Polarity of the valid vertical synchronization signal96.97. ;VI_VSYNC_VALID_NEG_HIGH = 0,98.99. ;VI_VSYNC_VALID_NEG_LOW101.Timingblank_HsyncHfb =0 ;Horizontal front blanking width102.103.Timingblank_HsyncAct =1280 ;Horizontal effetive width104.105.Timingblank_HsyncHbb =0 ;Horizontal back blanking width106.107.Timingblank_VsyncVfb =0 ;Vertical front blanking height108.109.Timingblank_VsyncVact =720 ;Vertical effetive width110.111.Timingblank_VsyncVbb=0 ;Vertical back blanking height112.113.Timingblank_VsyncVbfb =0 ;Even-field vertical front blanking height(inter lace, invalid progressive)114.115.Timingblank_VsyncVbact=0 ;Even-field vertical effetive width(interlace, i nvalid progressive)116.117.Timingblank_VsyncVbbb =0 ;Even-field vertical back blanking height(inte rlace, invalid progressive)118.121.;----- only for bt656 ----------122.FixCode =0 ;BT656_FIXCODE_1 = 0,123.124. ;BT656_FIXCODE_0125.126.FieldPolar=0 ;BT656_FIELD_POLAR_STD = 0127.128. ;BT656_FIELD_POLAR_NSTD129.130.DataPath =1 ;ISP enable or bypass131.132. ;VI_PATH_BYPASS = 0,/* ISP bypass */133.134. ;VI_PATH_ISP = 1,/* ISP enable */135.136. ;VI_PATH_RAW = 2,/* Capture raw data, for debug */ 137.138.InputDataType=1 ;VI_DATA_TYPE_YUV = 0,VI_DATA_TYPE_RGB = 1, 139.142.143.[vi_chn]144.145.CapRect_X =0146.147.CapRect_Y =0148.149.CapRect_Width=1280150.151.CapRect_Height=720152.153.DestSize_Width=1280154.155.DestSize_Height=720156.157.CapSel =2 ;Frame/field select. ONLY used in interlaced mode158. ;VI_CAPSEL_TOP = 0, /* top field */159. ;VI_CAPSEL_BOTTOM, /* bottom field */160. ;VI_CAPSEL_BOTH, /* top and bottom field */162.PixFormat =19 ;163.164.165.166.SrcFrameRate=-1 ;Source frame rate. -1: not controll 167.168.FrameRate =-1 ;Target frame rate. -1: not controll169.170.171.[vpss_group]172.Vpss_DrEn =FALSE173.174.Vpss_DbEn =FALSE175.176.Vpss_IeEn =TRUE177.178.Vpss_NrEn =TRUE179.180.Vpss_HistEn =TRUE181.182.Vpss_DieMode=0 ;Define de-interlace mode183.184. ;VPSS_DIE_MODE_AUTO = 0,185.186. ;VPSS_DIE_MODE_NODIE = 1,187.188. ;VPSS_DIE_MODE_DIE = 2,189.190.[vpss_chn]191.Vpss_W =1280192.Vpss_H =720193.194.[isp_image]195.196.Isp_W =1280197.198.Isp_H =720199.200.I sp_FrameRate=30201.202.Isp_Bayer =3 ;BAYER_RGGB=0, BAYER_GRBG=1, BAYER_GBRG=2, BAYER_ BGGR=3203.205.[isp_timing]206.207.Isp_WndMode=0 ;WIND_NONE= 0,WIND_HOR= 1,WIND_VER= 2,WIND_A LL= 3,208.209.I sp_HorWndStart=0210.211.Isp_HorWndLength=1280212.213.Isp_VerWndStart=0214.215.Isp_VerWndLength=720216.217.[vb_conf]218.219.VbCnt=8220.221.222.[venc]223.224.RcMode =VENC_RC_MODE_H264CBR226.Gop =30227.228.StatTime =1229.230.ViFrmRate =30231.232.TargetFrmRate=25233.;----- only for VENC_RC_MODE_H264CBR ----------234.BitRate=4096235.FluctuateLevel=1236.;----- only for VENC_RC_MODE_H264VBR ----------237.MaxBitRate =10000238.239.MaxQp=32240.241.MinQp=24242.;----- only for VENC_RC_MODE_H264FIXQP ----------243.IQp=20244.245.PQp=23 246.247.[bind]248.249.V iDev =0 250.251.ViChn =0 252.253.VpssGrp =0 254.255.VpssChn = 0 256.257.VencGrp =0 258.259.VencChn =0 260.261.VoDev =0 262.263.VoChn =0 264.265.V iSnapChn =0266.267.VpssSnapGrp=0 268.269.V pssSnapChn=1 270.271.VencSnapGrp=1 272.273.VencSnapChn=1。
基于海思方案的ip解决方案一、引言海思方案是指海思半导体公司开发的一系列芯片和解决方案,主要用于视频监控、智能家居、智能交通等领域。
本文将介绍基于海思方案的IP解决方案,包括方案概述、技术要求、实施步骤和预期效果。
二、方案概述基于海思方案的IP解决方案旨在提供一种高效、稳定、安全的网络传输方案,以满足用户对视频监控、智能家居等应用场景的需求。
该方案通过利用海思芯片的强大处理能力和先进的网络通信技术,实现高清视频传输、远程监控、智能识别等功能。
三、技术要求1. 硬件要求:- 海思芯片:使用海思公司提供的最新一代芯片,具备高性能、低功耗、稳定可靠的特点。
- 摄像头:选择适合应用场景的高清摄像头,支持海思芯片的接口标准。
- 存储设备:提供足够的存储空间,支持视频数据的高速读写。
- 网络设备:使用高速、稳定的网络设备,确保视频数据的快速传输和实时性。
2. 软件要求:- 操作系统:基于海思芯片的开发板上安装适合的操作系统,如Linux等。
- 驱动程序:根据摄像头和其他外设的硬件接口要求,编写相应的驱动程序。
- 视频编解码:使用海思提供的编解码库,实现对高清视频的编码和解码。
- 网络传输:采用网络传输协议,如TCP/IP、RTSP等,实现视频数据的传输和接收。
- 远程访问:通过云服务器或者其他远程访问方式,实现对视频监控系统的远程访问和控制。
- 智能识别:利用海思芯片的图像处理能力,实现人脸识别、车牌识别等智能功能。
四、实施步骤1. 硬件搭建:- 根据实际需求,选购适合的海思芯片开发板、摄像头、存储设备和网络设备。
- 将摄像头和其他外设连接到开发板上,并确保硬件连接正常。
2. 软件开发:- 安装适合的操作系统到海思芯片开发板上,并进行相应的配置。
- 编写驱动程序,实现对摄像头和其他外设的控制和数据传输。
- 利用海思提供的编解码库,实现对高清视频的编码和解码。
- 使用网络传输协议,实现视频数据的传输和接收。
- 开发远程访问功能,实现对视频监控系统的远程访问和控制。
海思3518e方案是一种广泛应用于视频监控、智能家居、车载电子等领域的芯片方案。
作为一款高性能、低功耗的方案,它在市场上享有很高的声誉。
本文将从的概述、技术特点、应用领域和未来发展趋势等方面进行探讨。
一、概述是海思半导体(Hisilicon)公司基于ARM架构开发的一款芯片方案。
该方案采用了先进的工艺技术,拥有较高的处理能力和较低的功耗。
同时,它还具备一系列丰富的外设接口和高性能的图像处理能力,适用于多种嵌入式应用领域。
二、技术特点1. 高性能处理能力采用了四核ARM Cortex-A7处理器,主频可达到1.2GHz。
此外,它还集成了一颗强大的图像处理单元(ISP),支持高清视频编解码和图像处理功能。
这些技术的综合应用,使得在处理多路高清视频和图像数据时表现出色。
2. 丰富的外设接口提供了丰富的外设接口,包括以太网口、USB接口、串口等。
这些接口的存在使得开发者可以方便地与其他外部设备进行通信,从而实现更为复杂的功能要求。
3. 低功耗设计在功耗控制方面拥有出色的性能。
采用先进的节能技术,该方案能够有效降低功耗,并延长应用设备的续航时间,提高整体系统的可靠性。
三、应用领域1. 视频监控在视频监控领域得到广泛应用。
其高性能处理器和图像处理单元能够实时处理多路高清视频和图像数据,为安防行业提供了可靠的解决方案。
同时,丰富的外设接口也方便了与其他设备的连接与通信。
2. 智能家居随着智能家居的兴起,在该领域也有着广泛应用。
它可以实现家庭安防、智能设备管理等功能,为用户带来更加智能化的家居体验。
同时,低功耗设计也符合智能家居设备长时间运行的要求。
3. 车载电子还适用于车载电子领域。
它能够处理多路车内外监控视频和图像数据,保障车内安全。
此外,该方案还支持车载多媒体系统、车载导航等功能的实现。
四、未来发展趋势随着物联网、人工智能等技术的快速发展,在未来有望得到更广泛的应用。
例如,在智能安防领域,可结合人脸识别、行为分析等技术,实现更加智能化的监控系统。
海思Hi35xx平台调试笔记1、进⼊板⼦debug环境 (根据⾃⼰情况)1) mount /dev/sda3 /root/disk2) minicom3) nfspc:sudo vi /etc/exports/root/disk/hi3516 *(rw,sync,no_root_squash,no_subtree_check)sudo /etc/init.d/nfs-kernel-server restartsudo /etc/init.d/rpcbind restartsudo ifconfig eth1 172.16.23.157board:ifconfig wlan1 172.16.23.158mount -t nfs -o nolock 172.16.23.157:/root/disk/hi3516 /root/hi3516注意海思sdk⾥的mpp⽬录名不要改动,改了会导致sample编译出错。
2、⾳视频数据循环采集a. 在sample_venc.c⽂件中,海思官⽅是把采集到的数据都保存到⽂件中,我们需要更改到缓存⾥,以便后⾯推送到rtsp/rtmp/hls服务端。
for (i = 0; i < s32ChnTotal; i++){if (FD_ISSET(VencFd[i], &read_fds)){/*******************************************************step 2.1 : query how many packs in one-frame stream.*******************************************************/memset(&stStream, 0, sizeof(stStream));s32Ret = HI_MPI_VENC_Query(i, &stStat);if (HI_SUCCESS != s32Ret){SAMPLE_PRT("HI_MPI_VENC_Query chn[%d] failed with %#x!\n", i, s32Ret);break;}/*******************************************************step 2.2 : malloc corresponding number of pack nodes.*******************************************************/stStream.pstPack = (VENC_PACK_S*)malloc(sizeof(VENC_PACK_S) * stStat.u32CurPacks);if (NULL == stStream.pstPack){SAMPLE_PRT("malloc stream pack failed!\n");break;}/*******************************************************step 2.3 : call mpi to get one-frame stream*******************************************************/stStream.u32PackCount = stStat.u32CurPacks;s32Ret = HI_MPI_VENC_GetStream(i, &stStream, HI_TRUE);if (HI_SUCCESS != s32Ret){free(stStream.pstPack);stStream.pstPack = NULL;SAMPLE_PRT("HI_MPI_VENC_GetStream failed with %#x!\n", \s32Ret);break;}/*******************************************************step 2.4 : save frame to file*******************************************************/HisiPutH264DataToBuffer(&stStream);/*s32Ret = SAMPLE_COMM_VENC_SaveStream(enPayLoadType[i], pFile[i], &stStream);if (HI_SUCCESS != s32Ret){free(stStream.pstPack);stStream.pstPack = NULL;SAMPLE_PRT("save stream failed!\n");break;}*//*******************************************************step 2.5 : release stream*******************************************************/s32Ret = HI_MPI_VENC_ReleaseStream(i, &stStream);if (HI_SUCCESS != s32Ret){free(stStream.pstPack);stStream.pstPack = NULL;break;}/*******************************************************step 2.6 : free pack nodes*******************************************************/free(stStream.pstPack);stStream.pstPack = NULL;}}b. HI_S32 HisiPutH264DataToBuffer(VENC_STREAM_S *pstStream)函数⽐较重要HI_S32 HisiPutH264DataToBuffer(VENC_STREAM_S *pstStream){HI_S32 i,j,x;HI_S32 len=0,off=0,len2=2,uplen=0;unsigned char *pstr;int iframe=0;for (i = 0; i < pstStream->u32PackCount; i++){len+=pstStream->pstPack[i].u32Len;}if(n<NMAX){for (i = 0; i < pstStream->u32PackCount; i++){memcpy(ringfifo[iput].buffer+off,pstStream->pstPack[i].pu8Addr,pstStream->pstPack[i].u32Len); off+=pstStream->pstPack[i].u32Len;pstr=pstStream->pstPack[i].pu8Addr;if(pstr[4]==0x67){UpdateSps(pstr+4,pstStream->pstPack[i].u32Len-4);iframe=1;}if(pstr[4]==0x68){UpdatePps(pstr+4,pstStream->pstPack[i].u32Len-4);}}ringfifo[iput].size= len;if(iframe){// printf("I");ringfifo[iput].frame_type = FRAME_TYPE_I;}else{ringfifo[iput].frame_type = FRAME_TYPE_P;// printf("P");}iput = addring(iput);// printf("(%d)",iput);// fflush(stdout);n++;}return HI_SUCCESS;}c. VENC_STREAM_S相关结构体//定义帧码流类型结构体:typedef structhiVENC_STREAM_S{VENC_PACK_S *pstPack; //帧码流包结构。
海思MPP视频处理平台流程简介海思MPP视频处理平台流程简介hisi芯⽚系统概述⾸先先来了解⼀下海思芯⽚SOC,下图是hi3519A芯⽚设计图 图1 hi3519AV100 芯⽚设计图芯⽚的设计图有助于我们对海思的图像处理有⼀个⼤致的了解,从上图中我们可以看到,芯⽚SOC⾥集成了众多控制芯⽚,⽐如负责深度学习的NNIE硬核,负责图像处理的IVE硬核,视频编解码单元H265/H264Codec,以及图像处理单元ISP等。
为了减少⽤户对于硬件的直接操作,海思为⽤户封装了许多对于硬件的操作接⼝,能够控制芯⽚完成相应的媒体处理功能,对上屏蔽了硬件的处理细节,⽤户能够将精⼒集中在业务功能上,达到快速开发的⽬的。
这些相关硬件接⼝就构成了下图中的媒体软件处理平台层。
我们进⾏视频图像的处理主要是要调⽤该层提供的相关接⼝来完成相应的功能,也必须要按照它提供的操作流程来执⾏相关功能的完成,所以需要熟悉它提供的相关接⼝的使⽤⽅法和使⽤限制,开发⼿册中提供了系统的处理流程以及具体的API描述,仔细阅读该⽂档能帮助我们更好地完成开发⼯作。
图2 海思35xx 系统层次图海思媒体软件处理平台概述海思媒体处理平台的主要内部处理流程如图3所⽰,主要分为 VI-视频输⼊,VPSS-视频处理,VENC-视频编码,VDEC-视频解码,VO-视频输出,AVS-视频拼接等模块 图 3 mpp 内部处理流程图从上图可以看出,可以根据⽤户需求完成多种⽅案实现,⽐如视频输出,视频监控等⽅案。
有的功能单个模块就能完成,⽽更多的功能则需要依赖模块之间“联动”完成。
各个模块之间的关系,⽐如,第⼀条pipeline是:sensor -> VI -> VPSS -> VENC -> 压缩码流或者 sensor -> VI -> VPSS -> VO -> 显⽰屏,这应该是单⽬相机上常⽤的pipeline。
3518E平台的搭建海思的SDK提供了ISP调试的相关工具,降低了IPC开发ISP调试的难度。
初次搭建ISP调试环境,记录一下。
SDK版本:Hi3518_MPP_V1.0.A.0硬件平台:HI3518E_OV9732工具包:PQ_TOOL (Hi3518E_V100R001C01SPC0A0\01.software\pc\PQ_TOOL)文件说明:Hi3518_ITTB_MPP2_V1.0.A.0_B030.tgz 设备端工具; PQTools_V3.7.5.zip PC端工具环境搭建步骤:(1)将Hi3518_ITTB_MPP2_V1.0.A.0_B030.tgz拷贝至nfs共享目录名,解压后运行HiIspTool.sh脚本倘若用海思自带的工具出图像并调节ISP运行:#./HiIspTool.sh -a -p ov9732_720p_line.inips一下可以看到两个进程696 adminlvj 58488 S ./ittb_stream -p ov9732_720p_line.ini699 adminlvj 19676 S ./ittb_control倘若运行自己的工程出图像了,这时只需要运行一下命令即可。
#./HiIspTool.sh -aps一下可以看到一个进程699 adminlvj 19676 S ./ittb_control(2)PC端直接解压PQTools_V3.7.5.zip,运行HiPQTools.exe,输入选择sdk版本Hi3518_MPP_V1.0.A.0 ,输入设备IP,就可以连接上摄像头倘若运行了ittb_stream,可以PC端软件上打开视频图像窗口连接成功,至此,最简单的ISP调试环境搭建就完成了。
复杂的就是后面的ISP调节过程了。
备注:运行脚本的时候可能会报错,查看相关打印信息,将错误消除。
当前产品我们用的是HI3518E+OV9732,SDK中并没有提供相关的sensor库和相关的config文件,所以运行报错了!解决:将OV9732sensor库拷贝至Hi3518_ITTB_MPP2_V1.0.A.0/libs/下,将ov9732_720p_line.ini拷贝至Hi3518_ITTB_MPP2_V1.0.A.0/configs/下附录:ov9732_720p_line.ini[plain]view plaincopyprint?1.[sensor]2.Sensor_type =ov9732 ;the type of sensor3.Mode =0 ;LINE mode,mode = 0 ,WDR mode,mode =14.DllFile =libs/libsns_ov9732.so ;LineDllFile path5.6.[vi_dev]7.Input_mod =2 ;VI_INPUT_MODE_BT656 = 08. ;VI_INPUT_MODE_BT601,9. ;VI_INPUT_MODE_DIGITAL_CAMERA10.11.Work_mod =0 ;VI_WORK_MODE_1Multiplex = 012.13. ;VI_WORK_MODE_2Multiplex,14.15. ;VI_WORK_MODE_4Multiplex16.bine_mode =0 ;Y/C composite or separation mode18.19. ;VI_COMBINE_COMPOSITE = 0 /*Composite mode */20.21. ;VI_COMBINE_SEPARATE, /*Separate mode */22.p_mode =0 ;Component mode (single-component or dual-component)24.25. ;VI_COMP_MODE_SINGLE = 0, /*single component mode */26.27. ;VI_COMP_MODE_DOUBLE = 1, /*double component mode */28.29.Clock_edge =1 ;Clock edge mode (sampling on the rising or falling edge)30.31. ;VI_CLK_EDGE_SINGLE_UP=0, /*rising edge */32.33. ;VI_CLK_EDGE_SINGLE_DOWN, /*falling edge */34.35.Mask_num =2 ;Component mask36.37.Mask_0 =0xFFC0000038.39.Mask_1 =0x040.41.Scan_mode = 1;VI_SCAN_INTERLACED = 042.43. ;VI_SCAN_PROGRESSIVE,44.45.Data_seq =2 ;data sequence (ONLY for YUV format)46.47. ;----2th component U/V sequence in bt112048.49. ; VI_INPUT_DATA_VUVU = 0,50.51. ; VI_INPUT_DATA_UVUV,52.53. ;----input sequence for yuv54.55. ; VI_INPUT_DATA_UYVY = 0,56.57. ; VI_INPUT_DATA_VYUY,58.59. ; VI_INPUT_DATA_YUYV,60.61. ; VI_INPUT_DATA_YVYU62.63.64.65.Vsync =1 ; vertical synchronization signal66.67. ;VI_VSYNC_FIELD = 0,68.69. ;VI_VSYNC_PULSE,70.71.VsyncNeg=0 ;Polarity of the vertical synchronization signal72.73. ;VI_VSYNC_NEG_HIGH = 0,74.75. ;VI_VSYNC_NEG_LOW /*if VIU_VSYNC_E76.77.Hsync =0 ;Attribute of the horizontal synchronization signal78.79. ;VI_HSYNC_VALID_SINGNAL = 0,80.81. ;VI_HSYNC_PULSE,82.83.HsyncNeg =0 ;Polarity of the horizontal synchronization signal84.85. ;VI_HSYNC_NEG_HIGH = 0,86.87. ;VI_HSYNC_NEG_LOW88.89.VsyncValid =0 ;Attribute of the valid vertical synchronization signal90.91. ;VI_VSYNC_NORM_PULSE = 0,92.93. ;VI_VSYNC_VALID_SINGAL,94.95.VsyncValidNeg =0;Polarity of the valid vertical synchronization signal96.97. ;VI_VSYNC_VALID_NEG_HIGH = 0,98.99. ;VI_VSYNC_VALID_NEG_LOW100.101.Timingblank_HsyncHfb =0 ;Horizontal front blanking width102.103.Timingblank_HsyncAct =1280 ;Horizontal effetive width104.105.Timingblank_HsyncHbb =0 ;Horizontal back blanking width106.107.Timingblank_VsyncVfb =0 ;Vertical front blanking height108.109.Timingblank_VsyncVact =720 ;Vertical effetive width110.111.Timingblank_VsyncVbb=0 ;Vertical back blanking height112.113.Timingblank_VsyncVbfb =0 ;Even-field vertical front blanking height(interlace, invalid progressive) 114.115.Timingblank_VsyncVbact=0 ;Even-field vertical effetive width(interlace, invalid progressive) 116.117.Timingblank_VsyncVbbb =0 ;Even-field vertical back blanking height(interlace, invalid progressive) 118.119.120.121.;----- only for bt656 ----------122.FixCode =0 ;BT656_FIXCODE_1 = 0,123.124. ;BT656_FIXCODE_0125.126.FieldPolar=0 ;BT656_FIELD_POLAR_STD = 0127.128. ;BT656_FIELD_POLAR_NSTD129.130.DataPath =1 ;ISP enable or bypass131.132. ;VI_PATH_BYPASS = 0,/* ISP bypass */133.134. ;VI_PATH_ISP = 1,/* ISP enable */135.136. ;VI_PATH_RAW = 2,/* Capture raw data, for debug */137.138.InputDataType=1 ;VI_DATA_TYPE_YUV = 0,VI_DATA_TYPE_RGB = 1,139.140.DataRev =FALSE ;Data reverse. FALSE = 0; TRUE = 1141.142.143.[vi_chn]144.145.CapRect_X =0146.147.CapRect_Y =0148.149.CapRect_Width=1280150.151.CapRect_Height=720152.153.DestSize_Width=1280154.155.DestSize_Height=720156.157.CapSel =2 ;Frame/field select. ONLY used in interlaced mode158. ;VI_CAPSEL_TOP = 0, /* top field */159. ;VI_CAPSEL_BOTTOM, /* bottom field */160. ;VI_CAPSEL_BOTH, /* top and bottom field */ 161.162.PixFormat =19 ;163.164.165.166.SrcFrameRate=-1 ;Source frame rate. -1: not controll167.168.FrameRate =-1 ;Target frame rate. -1: not controll169.170.171.[vpss_group]172.Vpss_DrEn =FALSE173.174.Vpss_DbEn =FALSE175.176.Vpss_IeEn =TRUE177.178.Vpss_NrEn =TRUE179.180.Vpss_HistEn =TRUE181.182.Vpss_DieMode=0 ;Define de-interlace mode183.184. ;VPSS_DIE_MODE_AUTO = 0,185.186. ;VPSS_DIE_MODE_NODIE = 1,187.188. ;VPSS_DIE_MODE_DIE = 2,189.190.[vpss_chn]191.Vpss_W =1280192.Vpss_H =720193.194.[isp_image]195.196.Isp_W =1280198.Isp_H =720199.200.Isp_FrameRate=30201.202.Isp_Bayer =3 ;BAYER_RGGB=0, BAYER_GRBG=1, BAYER_GBRG=2, BAYER_BGGR=3 203.204.205.[isp_timing]206.207.Isp_WndMode=0 ;WIND_NONE= 0,WIND_HOR= 1,WIND_VER= 2,WIND_ALL= 3, 208.209.Isp_HorWndStart=0210.211.Isp_HorWndLength=1280212.213.Isp_VerWndStart=0214.215.Isp_VerWndLength=720216.217.[vb_conf]218.219.VbCnt=8220.221.222.[venc]223.224.RcMode =VENC_RC_MODE_H264CBR225.226.Gop =30227.228.StatTime =1229.230.ViFrmRate =30231.232.TargetFrmRate=25233.;----- only for VENC_RC_MODE_H264CBR ----------234.BitRate=4096235.FluctuateLevel=1236.;----- only for VENC_RC_MODE_H264VBR ----------237.MaxBitRate =10000238.239.MaxQp=32240.241.MinQp=24242.;----- only for VENC_RC_MODE_H264FIXQP ----------243.IQp=20244.245.PQp=23247.[bind] 248.249.ViDev =0 250.251.ViChn =0 252.253.VpssGrp =0 254.255.VpssChn = 0 256.257.VencGrp =0 258.259.VencChn =0 260.261.VoDev =0 262.263.VoChn =0 264.265.ViSnapChn =0 266.267.VpssSnapGrp=0 268.269.VpssSnapChn=1 270.271.VencSnapGrp=1 272.273.VencSnapChn=1。
3518E平台的搭建海思的SDK提供了ISP调试的相关工具,降低了IPC开发ISP调试的难度。
初次搭建ISP调试环境,记录一下。
SDK版本:Hi3518_MPP_V1.0.A.0硬件平台:HI3518E_OV9732工具包:PQ_TOOL (Hi3518E_V100R001C01SPC0A0\01.software\pc\PQ_TOOL)文件说明:Hi3518_ITTB_MPP2_V1.0.A.0_B030.tgz 设备端工具; PQTools_V3.7.5.zip PC端工具环境搭建步骤:(1)将Hi3518_ITTB_MPP2_V1.0.A.0_B030.tgz拷贝至nfs共享目录名,解压后运行HiIspTool.sh脚本倘若用海思自带的工具出图像并调节ISP运行:#./HiIspTool.sh -a -p ov9732_720p_line.inips一下可以看到两个进程696 adminlvj 58488 S ./ittb_stream -p ov9732_720p_line.ini699 adminlvj 19676 S ./ittb_control倘若运行自己的工程出图像了,这时只需要运行一下命令即可。
#./HiIspTool.sh -aps一下可以看到一个进程699 adminlvj 19676 S ./ittb_control(2)PC端直接解压PQTools_V3.7.5.zip,运行HiPQTools.exe,输入选择sdk版本Hi3518_MPP_V1.0.A.0 ,输入设备IP,就可以连接上摄像头倘若运行了ittb_stream,可以PC端软件上打开视频图像窗口连接成功,至此,最简单的ISP调试环境搭建就完成了。
复杂的就是后面的ISP调节过程了。
备注:解决:将OV9732sensor库拷贝至Hi3518_ITTB_MPP2_V1.0.A.0/libs/下,将ov9732_720p_line.ini拷贝至Hi3518_ITTB_MPP2_V1.0.A.0/configs/下附录:ov9732_720p_line.ini[plain]view plaincopyprint?1.[sensor]2.Sensor_type =ov9732 ;the type of sensor3.Mode =0 ;LINE mode,mode = 0 ,WDR mode,mode =14.DllFile =libs/libsns_ov9732.so ;LineDllFile path5.6.[vi_dev]7.Input_mod =2 ;VI_INPUT_MODE_BT656 = 08. ;VI_INPUT_MODE_BT601,9. ;VI_INPUT_MODE_DIGITAL_CAMERA10.11.Work_mod =0 ;VI_WORK_MODE_1Multiplex = 012.13. ;VI_WORK_MODE_2Multiplex,14.15. ;VI_WORK_MODE_4Multiplex16.bine_mode =0 ;Y/C composite or separation mode18.19. ;VI_COMBINE_COMPOSITE = 0 /*Composite mode */p_mode =0 ;Component mode (single-component or dual-component)24.25. ;VI_COMP_MODE_SINGLE = 0, /*single component mode */26.27. ;VI_COMP_MODE_DOUBLE = 1, /*double component mode */28.29.Clock_edge =1 ;Clock edge mode (sampling on the rising or falling edge)30.31. ;VI_CLK_EDGE_SINGLE_UP=0, /*rising edge */32.33. ;VI_CLK_EDGE_SINGLE_DOWN, /*falling edge */34.35.Mask_num =2 ;Component mask36.37.Mask_0 =0xFFC0000038.39.Mask_1 =0x040.41.Scan_mode = 1;VI_SCAN_INTERLACED = 042.43. ;VI_SCAN_PROGRESSIVE,44.45.Data_seq =2 ;data sequence (ONLY for YUV format)49. ; VI_INPUT_DATA_VUVU = 0,50.51. ; VI_INPUT_DATA_UVUV,52.53. ;----input sequence for yuv54.55. ; VI_INPUT_DATA_UYVY = 0,56.57. ; VI_INPUT_DATA_VYUY,58.59. ; VI_INPUT_DATA_YUYV,60.61. ; VI_INPUT_DATA_YVYU62.63.64.65.Vsync =1 ; vertical synchronization signal66.67. ;VI_VSYNC_FIELD = 0,68.69. ;VI_VSYNC_PULSE,70.71.VsyncNeg=0 ;Polarity of the vertical synchronization signal75. ;VI_VSYNC_NEG_LOW /*if VIU_VSYNC_E76.77.Hsync =0 ;Attribute of the horizontal synchronization signal78.79. ;VI_HSYNC_VALID_SINGNAL = 0,80.81. ;VI_HSYNC_PULSE,82.83.HsyncNeg =0 ;Polarity of the horizontal synchronization signal84.85. ;VI_HSYNC_NEG_HIGH = 0,86.87. ;VI_HSYNC_NEG_LOW88.89.VsyncValid =0 ;Attribute of the valid vertical synchronization signal90.91. ;VI_VSYNC_NORM_PULSE = 0,92.93. ;VI_VSYNC_VALID_SINGAL,94.95.VsyncValidNeg =0;Polarity of the valid vertical synchronization signal96.97. ;VI_VSYNC_VALID_NEG_HIGH = 0,101.Timingblank_HsyncHfb =0 ;Horizontal front blanking width102.103.Timingblank_HsyncAct =1280 ;Horizontal effetive width104.105.Timingblank_HsyncHbb =0 ;Horizontal back blanking width106.107.Timingblank_VsyncVfb =0 ;Vertical front blanking height108.109.Timingblank_VsyncVact =720 ;Vertical effetive width110.111.Timingblank_VsyncVbb=0 ;Vertical back blanking height112.113.Timingblank_VsyncVbfb =0 ;Even-field vertical front blanking height(interlace, invalid progressive) 114.115.Timingblank_VsyncVbact=0 ;Even-field vertical effetive width(interlace, invalid progressive) 116.117.Timingblank_VsyncVbbb =0 ;Even-field vertical back blanking height(interlace, invalid progressive) 118.119.120.121.;----- only for bt656 ----------122.FixCode =0 ;BT656_FIXCODE_1 = 0,123.126.FieldPolar=0 ;BT656_FIELD_POLAR_STD = 0127.128. ;BT656_FIELD_POLAR_NSTD129.130.DataPath =1 ;ISP enable or bypass131.132. ;VI_PATH_BYPASS = 0,/* ISP bypass */133.134. ;VI_PATH_ISP = 1,/* ISP enable */135.136. ;VI_PATH_RAW = 2,/* Capture raw data, for debug */ 137.138.InputDataType=1 ;VI_DATA_TYPE_YUV = 0,VI_DATA_TYPE_RGB = 1, 139.140.DataRev =FALSE ;Data reverse. FALSE = 0; TRUE = 1141.142.143.[vi_chn]144.145.CapRect_X =0146.147.CapRect_Y =0148.149.CapRect_Width=1280152.153.DestSize_Width=1280154.155.DestSize_Height=720156.157.CapSel =2 ;Frame/field select. ONLY used in interlaced mode 158. ;VI_CAPSEL_TOP = 0, /* top field */159. ;VI_CAPSEL_BOTTOM, /* bottom field */ 160. ;VI_CAPSEL_BOTH, /* top and bottom field */ 161.162.PixFormat =19 ;163.164.165.166.SrcFrameRate=-1 ;Source frame rate. -1: not controll167.168.FrameRate =-1 ;Target frame rate. -1: not controll169.170.171.[vpss_group]172.Vpss_DrEn =FALSE173.174.Vpss_DbEn =FALSE175.178.Vpss_NrEn =TRUE179.180.Vpss_HistEn =TRUE181.182.Vpss_DieMode=0 ;Define de-interlace mode 183.184. ;VPSS_DIE_MODE_AUTO = 0, 185.186. ;VPSS_DIE_MODE_NODIE = 1, 187.188. ;VPSS_DIE_MODE_DIE = 2, 189.190.[vpss_chn]191.Vpss_W =1280192.Vpss_H =720193.194.[isp_image]195.196.Isp_W =1280197.198.Isp_H =720199.200.Isp_FrameRate=30201.204.205.[isp_timing]206.207.Isp_WndMode=0 ;WIND_NONE= 0,WIND_HOR= 1,WIND_VER= 2,WIND_ALL= 3, 208.209.Isp_HorWndStart=0210.211.Isp_HorWndLength=1280212.213.Isp_VerWndStart=0214.215.Isp_VerWndLength=720216.217.[vb_conf]218.219.VbCnt=8220.221.222.[venc]223.224.RcMode =VENC_RC_MODE_H264CBR225.226.Gop =30227.230.ViFrmRate =30231.232.TargetFrmRate=25233.;----- only for VENC_RC_MODE_H264CBR ---------- 234.BitRate=4096235.FluctuateLevel=1236.;----- only for VENC_RC_MODE_H264VBR ---------- 237.MaxBitRate =10000238.239.MaxQp=32240.241.MinQp=24242.;----- only for VENC_RC_MODE_H264FIXQP ---------- 243.IQp=20244.245.PQp=23246.247.[bind]248.249.ViDev =0250.251.ViChn =0252.253.VpssGrp =0254.255.VpssChn = 0256.257.VencGrp =0 258.259.VencChn =0 260.261.VoDev =0 262.263.VoChn =0 264.265.ViSnapChn =0 266.267.VpssSnapGrp=0 268.269.VpssSnapChn=1 270.271.VencSnapGrp=1 272.273.VencSnapChn=1。