下载
中文
注册

hi_mpi_isp_set_exposure_attr

函数功能

设定AE曝光属性。

函数原型

hi_s32 hi_mpi_isp_set_exposure_attr(hi_vi_pipe vi_pipe, const hi_isp_exposure_attr *exp_attr)

约束说明

  • AE曝光控制类型为自动时,曝光时间,曝光增益都由AE算法自动控制,可以通过配置自动曝光属性结构体auto_attr里面的参数得到不同的曝光效果。
  • AE曝光控制类型为手动时,可以通过配置手动曝光属性结构体manual_attr控制使能类型(曝光时间使能、sensor模拟增益使能、sensor数字增益使能、ISP数字增益使能)及相应的曝光参数(曝光时间、sensor模拟增益、sensor数字增益、ISP数字增益)。
  • AE曝光控制类型为自动时,配置手动曝光属性的参数无效。同理,AE曝光控制类型为手动时,配置自动曝光属性的参数无效。
  • AE曝光控制类型为手动时,若曝光参数设置超出最大(小)值,将使用sensor支持的最大(小)值代替。
  • 无论是自动曝光还是手动曝光,曝光时间的单位为微秒(us),曝光增益的单位为10bit 精度的倍数,即 1024 代表 1 倍,2048 代表 2 倍等。
  • WDR模式下,优先帧设置为长帧时,优先根据长帧的曝光路线进行曝光,其中 2 合 1WDR 模式下当增益分开配置时,短帧曝光路线根据长帧的曝光参数进行调整;优先帧设置为短帧时,优先根据短帧的曝光路线进行曝光,其中 2 合 1WDR 模式下当增益分开配置时,长帧曝光路线根据短帧的曝光参数进行调整。
  • 2 合 1WDR模式下,设置增益分开配置,若sensor支持长短帧不同增益,可实现长短帧不同的sensor模拟增益、sensor数字增益、WDR增益,若 sensor不支持长短帧不同增益,可实现长短帧不同的WDR增益。
  • 使用灌图接口从BE进行回灌时,需要将AE曝光控制类型设置为手动。

参数说明

参数名

输入/输出

说明

vi_pipe

输入

VI PIPE号。

取值范围:[0, 12)。

exp_attr

输入

AE曝光属性结构体指针。

返回值说明

参考样例

自动曝光属性设置:

hi_vi_pipe vi_pipe = 0; 
hi_isp_exposure_attr exp_attr;

hi_mpi_isp_get_exposure_attr(vi_pipe, &exp_attr);
 
exp_attr.bypass = HI_FALSE;    
exp_attr.prior_frame = HI_ISP_LONG_FRAME; 
exp_attr.ae_gain_sep_cfg = HI_FALSE;
exp_attr.op_type = HI_OP_MODE_AUTO;        
exp_attr.auto_attr.exp_time_range.max = 40000; 
exp_attr.auto_attr.exp_time_range.min = 10;
hi_mpi_isp_set_exposure_attr(vi_pipe, &exp_attr); 

exp_attr.auto_attr.speed = 0x80;
hi_mpi_isp_set_exposure_attr(vi_pipe, &exp_attr); 

exp_attr.auto_attr.exp_attr = HI_ISP_AE_EXP_HIGHLIGHT_PRIOR;    
exp_attr.auto_attr.hist_ratio_slope = 0x100; 
exp_attr.auto_attr.max_hist_offset = 0x40; 
hi_mpi_isp_set_exposure_attr(vi_pipe, &exp_attr); 

exp_attr.auto_attr.antiflicker.enable = HI_TRUE; 
exp_attr.auto_attr.antiflicker.frequency = 50; 
exp_attr.auto_attr.antiflicker.mode = HI_ISP_ANTIFLICKER_NORMAL_MODE; hi_mpi_isp_set_exposure_attr(vi_pipe, &exp_attr); 

exp_attr.auto_attr.ae_delay_attr.black_delay_frame = 10; 
exp_attr.auto_attr.ae_delay_attr.white_delay_frame = 0; hi_mpi_isp_set_exposure_attr(vi_pipe, &exp_attr);

手动曝光属性设置:

hi_vi_pipe vi_pipe = 0; 
hi_isp_exposure_attr exp_attr;

hi_mpi_isp_get_exposure_attr(vi_pipe, &exp_attr);
exp_attr.bypass = HI_FALSE;    
exp_attr.op_type = HI_OP_MODE_MANUAL;
exp_attr.manual_attr.a_gain_op_type = HI_OP_MODE_MANUAL; 
exp_attr.manual_attr.d_gain_op_type = HI_OP_MODE_MANUAL;
exp_attr.manual_attr.ispd_gain_op_type = HI_OP_MODE_MANUAL; 
exp_attr.manual_attr.exp_time_op_type = HI_OP_MODE_MANUAL; 
exp_attr.manual_attr.a_gain = 0x400; 
exp_attr.manual_attr.d_gain = 0x400; 
exp_attr.manual_attr.isp_d_gain = 0x400; 
exp_attr.manual_attr.exp_time = 0x40000;
hi_mpi_isp_get_exposure_attr(vi_pipe, &exp_attr);