海思视频编解码VI图谱

main 
SAMPLE_VENC_1080P_CLASSIC
SAMPLE_COMM_VI_GetSizeBySensor //step 1: init sys variable 
SAMPLE_COMM_SYS_CalcPicVbBlkSize
SAMPLE_COMM_SYS_GetPicSize

SAMPLE_COMM_SYS_Init //step 2: mpp system init. 
HI_MPI_SYS_Exit();
HI_MPI_VB_Exit();
HI_MPI_VB_SetConf
HI_MPI_VB_Init
HI_MPI_SYS_SetConf
HI_MPI_SYS_Init

SAMPLE_COMM_VI_StartVi //step 3: start vi dev & chn to capture
IsSensorInput (判断是否传统还是现在的sensor)
SAMPLE_COMM_VI_StartIspAndVi ()
SAMPLE_COMM_VI_StartMIPI (step 1: mipi configure)
SAMPLE_COMM_VI_SetMipiAttr   操作sensor,对sensor做必要的初始化
open("/dev/hi_mipi", O_RDWR)
ioctl(fd, HI_MIPI_SET_DEV_ATTR, pstcomboDevAttr)
SAMPLE_COMM_ISP_Init (step 2:)  ISP:对图像(自动曝光之类)处理,一般外面加了处理芯片,所以一般不用3518E内部的ISP,所以一般关闭
sensor_register_callback  在Sensor驱动里面能找到,注册sensor的回调
HI_MPI_AE_Register 海思的API,注册ISP单元AE,用来自动曝光
HI_MPI_AWB_Register 自动白平衡
HI_MPI_AF_Register 自动对焦
HI_MPI_ISP_MemInit 对ISP分配必要的内存
HI_MPI_ISP_SetWDRMode 设置宽动态模式
HI_MPI_ISP_SetPubAttr 写入ISP单元内部,将来ISP会根据设的参数处理图像
HI_MPI_ISP_Init ISP系统初始化
SAMPLE_COMM_ISP_Run (step 3: run isp thread )ISP跑起来,HI3518E内部的ISP单元隶属于VI模块的
pthread_create(&gs_IspPid, &attr, (void* (*)(void*))Test_ISP_Run, NULL)
Test_ISP_Run
HI_MPI_ISP_Run
SAMPLE_COMM_VI_StartDev (step 4 : config & start vicap dev)
HI_MPI_VI_SetDevAttr 真正写入硬件单元生效
HI_MPI_ISP_GetWDRMode
HI_MPI_VI_SetWDRAttr
HI_MPI_VI_Ena bleDev Dev打开
SAMPLE_COMM_VI_StartChn (Step 5: config & start vicap chn (max 1))
HI_MPI_VI_SetChnAttr 设置Chn通道
HI_MPI_VI_SetRotate
HI_MPI_VI_EnableChn
SAMPLE_COMM_ISP_Stop
HI_MPI_ISP_Exit
HI_MPI_AF_UnRegister
HI_MPI_AWB_UnRegister
HI_MPI_AE_UnRegister
sensor_unregister_callback

SAMPLE_COMM_SYS_GetPicSize //step 4: start vpss and vi bind vpss
HI_MPI_VPSS_CreateGrp
HI_MPI_VPSS_GetNRParam
HI_MPI_VPSS_SetNRParam
HI_MPI_VPSS_StartGrp
SAMPLE_COMM_VPSS_StartGroup
SAMPLE_COMM_VI_BindVpss
SAMPLE_COMM_VI_Mode2Param
HI_MPI_SYS_Bind
SAMPLE_COMM_VPSS_EnableChn
HI_MPI_VPSS_SetChnAttr
HI_MPI_VPSS_SetExtChnAttr
HI_MPI_VPSS_SetChnMode
HI_MPI_VPSS_EnableChn
SAMPLE_COMM_VENC_Start  //step 5: start stream venc
SAMPLE_COMM_VENC_BindVpss
SAMPLE_COMM_VENC_StartGetStream  //step 6: stream venc process -- get stream, then save it to file. 
SAMPLE_COMM_VENC_StopGetStream  //step 7: exit process

猜你喜欢

转载自blog.csdn.net/weixin_37661634/article/details/80388946
今日推荐