下载
中文
注册

向ISP库注册昇腾AE算法

  1. 用户需要在自开发定制的AE库中实现以下回调函数(回调函数的说明请参见hi_isp_ae_exp_func),如下表所示:

    成员名称

    描述

    pfn_ae_init

    初始化AE的回调函数指针。

    调用hi_mpi_isp_init时将调用pfn_ae_init回调函数,以初始化 AE 算法库。

    pfn_ae_run

    运行 AE 的回调函数指针。

    调用hi_mpi_isp_run时将调用pfn_ae_run回调函数,以运行AE算法库,计算得到Sensor的曝光时间和增益、ISP的数字增益。

    pfn_ae_ctrl

    控制 AE 内部状态的回调函数指针。

    pfn_ae_ctrl回调函数的目的是改变算法库内部状态,运行时,Firmware会隐式调用pfn_ae_ctrl回调函数,通知AE算法库切换WDR和线性模式、设置 FPS。pfn_ae_ctrl回调函数中的cmd值需参见hi_isp_ctrl_cmd

    pfn_ae_exit

    销毁 AE 的回调函数指针。

    调用hi_mpi_isp_exit时将调用pfn_ae_exit 回调函数,以销毁AE 算法库。

  2. AE算法实现了一个hi_mpi_ae_register的注册函数,在这个函数中调用了ISP提供的hi_mpi_isp_ae_lib_reg_callback接口向ISP库注册AE算法,示例如下:
    /* 实现注册函数 */
    hi_isp_ae_register ae_register; hi_s32 ret = HI_SUCCESS;
    ae_check_pointer_return(ae_lib); ae_check_handle_id_return(ae_lib->id);
    ae_check_lib_name_return(ae_lib->lib_name);
    /* 调用回调函数 */
    ae_register.ae_exp_func.pfn_ae_init  = ae_init;
    ae_register.ae_exp_func.pfn_ae_run   = ae_run;
    ae_register.ae_exp_func.pfn_ae_ctrl  = ae_ctrl;
    ae_register.ae_exp_func.pfn_ae_exit  = ae_exit;
    ret = hi_mpi_isp_ae_lib_reg_callback(vi_pipe, ae_lib, &ae_register);
    if (ret != HI_SUCCESS)
    {
    printf("Hi_ae register failed!\n");
    }