海思视频编解码VI图谱

版权声明:本文为博主原创文章,遵循 CC 4.0 by-sa 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/weixin_37661634/article/details/80388946

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

展开阅读全文

没有更多推荐了,返回首页