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,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的配置值。
父主题: 数据类型