下载
中文
注册

hi_isp_ctrl_param

说明

定义ISP控制参数结构体。

定义

typedef struct {
    hi_u8     be_buf_num; 
    hi_u32    proc_param; 
    hi_u32    stat_interval; 
    hi_u32    update_pos;
    hi_u32    interrupt_time_out;
    hi_u32    pwm_num;
    hi_u32    port_interrupt_delay; 
    hi_bool   ldci_tpr_flt_en;
} hi_isp_ctrl_param;

成员

成员名称

描述

be_buf_num

ISP BE config buffer的数目。 取值范围:[2, 9],默认值为4

proc_param

ISP的PROC信息更新频率。默认值30;

proc打印生效时最小值为1,无上限。proc_param为n表示每隔n帧更新一次ISP的PROC信息。配置0时表示不启用proc信息打印。

stat_interval

ISP统计信息更新频率。注意:在高帧率业务时,如120fps及其以上帧率,可通过参数stat_interval设置其ISP统计信息更新频率,从而可降低ISP的CPU占用率,同时降低性能消耗。

取值范围:(0,0xffffffff]

update_pos

默认值为0。根据hi_isp_sns_regs_info结构体中interrupt_pos变量的配置值。

  • 0:sensor寄存器在帧起始中断或帧结束中断配置;
  • 其他值:sensor寄存器在帧结束中断配置。

取值范围:[0,1]

interrupt_time_out

表示中断超时的时间(ms)。

pwm_num

表示PWM号,配套dc-iris光圈控制场景使用。

port_interrupt_delay

表示Port中断延时时间,默认值为0。

解决部分sensor(如:imx323)Half WDR模式下,在前面几行配置sensor寄存器会出现闪烁,需要延时。

port_init_delay是按照VI的工作时钟频率计算,以时钟为单位。如:VI时钟是500MHz。延时 1ms,port_init_delay的计算如下:port_init_delay(1ms)= 500M/1000ms = 500000

注意:port_init_delay仅在Half WDR模式下生效,因为其他模式配置sensor不用Port中断。

ldci_tpr_flt_en

表示LDCI是否使能时域滤波,默认值为0。

注意事项

  • proc_param的默认值为30,即每30帧更新一次ISP Proc信息,如果要关闭ISP Proc信息,则在hi_mpi_isp_mem_init之前通过接口hi_mpi_isp_set_ctrl_param设置ISP控制参数proc_param为 0,不分配存储ISP Proc信息的内存,而且后续不能将proc_param设置为非0值。
  • 通过接口hi_mpi_isp_set_ctrl_param第一次设置proc_param为非0时,必需在hi_mpi_isp_mem_init接口调用之前,因为需要分配Proc信息存储的内存,后续设置只能在非0值之间动态切换。
  • ISP Proc信息频繁更新会消耗CPU资源。推荐设为30帧更新一次,或仅Debug时开启。
  • 只能在hi_mpi_isp_mem_init之前通过接口hi_mpi_isp_set_ctrl_param设置update_pos、pwm_num、port_interrupt_delay、ldci_tpr_flt_en、be_buf_num ,在 hi_mpi_isp_mem_init之后不可再更改上述5个参数的配置值;而hi_mpi_isp_get_ctrl_param接口调用顺序没有限制。
  • 可通过接口hi_mpi_isp_set_ctrl_param动态更改proc_param、stat_interval、interrupt_time_out的配置值。
  • 不支持加载ko时设置ISP控制参数。
  • 离线模式下,VI缓存RAW数据的队列深度为8,若业务量较大时,采用默认的be_buf_num,有可能会出现不丢帧但是ISP中有“get FreeBeBuf is fail”错误打印的问题,此时可以增大be_buf_num的配置值,缓解此问题;另外对于业务量不繁重并且对于内存占用要求较高的应用场景,可以适当的减小be_buf_num的配置值。