您好,我们在摄像机的开发中用到了DM8127芯片中的ISS模块,调试图像的效果中发现图像的动态范围有点低,所以将问题定位在ISS模块中,ISIF的Sensor Linearization 模块。
目前我们配置中该模块主要采用16位数据直接截成12位数据的方式,所以会损失掉很多图像细节,该模块提供了一种传感器线性化的方法来提高图像的动态范围,但是在看文档之后,虽然对原理理论有了比较深入的理解,但是距离最终灵活使用上,还是有一些问题:
(1)该模块的配置主要有以下几个参数,该参数定义的寄存器也已经搞明白了
typedef struct {
/* Linearization enabled 是否启用该模块,对应寄存器ISIF_LINCFG0[0]*/
uint8 enable;
/* COrrection shift values 线性化的偏移值,在线性化查表差值完之后,进行偏移校正,对应寄存器ISIF_LINCFG0[6:4]*/
ISIF_LINEAR_SHIFT_VALUE correction_shift;
/* Linear Sampling method采样方式,对应寄存器 ISIF_LINCFG0[1]*/
ISIF_LINEAR_SAMPLING non_uniform_mode;
/* Scale factor (U11Q10) for LUT input缩放因子,在线性化查表差值之前,对应寄存器 ISIF_LINCFG1[10:0]*/
uint16 scale_value;
} isif_sensor_linear_cfg_t;
以上值在代码中也能找到配置的地方,也能找到对应的寄存器设置,但是这些值的意义该如何来设置?具体怎么设置成什么值的搭配才能提高sensor的动态范围?
需要提供指导说明。
(2)线性化差值表应该是在内存当中的,有两个查找表,如下:
Memory Mapping Start End Size Comments
LIN table0 0x5505 C000 0x5505 C17F 1024 ISIF Linearization table
LIN table1 0x5505 C400 0x5505 C57F 1024 ISIF Linearization table
但是这两个表如何来设置?是固定好的?还是可配置的?设置入口在哪?
以上,请高手指导,谢谢。