static struct sensor_lib_out_info_t sensor_out_info[] = {
/*RES 0*/
{
.x_output = 3264,
.y_output = 2448,
.line_length_pclk = 1932,
.frame_length_lines = 2482,
.vt_pixel_clk = 144000000,
.op_pixel_clk = 254400000,
.binning_factor = 1,
.max_fps = 30.0,
.min_fps = 7.5,
.mode = SENSOR_DEFAULT_MODE,
},
/* RES 1*/
{
.x_output = 640,
.y_output = 480,
.line_length_pclk = 1932,
.frame_length_lines = 7446,
.vt_pixel_clk = 144000000,
.op_pixel_clk = 254400000,
.binning_factor = 1,
.max_fps = 10.0,
.min_fps = 7.5,
.mode = SENSOR_HFR_MODE,
},
/* RES 2*/
{
.x_output = 1632,
.y_output = 1224,
.line_length_pclk = 1932,
.frame_length_lines = 2482,
.vt_pixel_clk = 144000000,
.op_pixel_clk = 254400000,
.binning_factor = 1,
.max_fps = 30.0,
.min_fps = 7.5,
.mode = SENSOR_DEFAULT_MODE,
}
};
高通camera 驱动里面的数组sensor_out_info,一共有3组size。分别是RES0 RES1 RES2
.x_output = 3264, 这里的x和y是sensor实际输出的宽和高
.y_output = 2448,
.line_length_pclk = 1932,
.frame_length_lines = 2482,
.vt_pixel_clk = 144000000,
.op_pixel_clk = 254400000, 这个的解释是VFE 时钟,表示每秒 VFE 处理的数据量(in pixel),就是一个表示处理数据快慢的单位,如果是全尺寸的话,那么就要配置的大一些。如果是小尺寸的话,就没必要配置很大。
.binning_factor = 1,
.max_fps = 30.0,
.min_fps = 7.5,
.mode = SENSOR_DEFAULT_MODE,
---------------------------------------------------------------------
vt_pixel_clk(video timing clk value) – Virtual clock value used for calculating shutter time,and used by AEC for correcting banding artifacts,代表的就是暴光时间
vt_pixel_clk = line_length_pclk * frame_length_lines * frame rate
平台根据写入不同的曝光行来控制帧率,比如在暗处希望牺牲一点帧率,让Gain值更高,就用这个公式来计算,最后计算的 frame_length_lines 写入相应寄存器;
注意一点的是不同的平台需要一个最小的blanking time,所以frame_length_lines是要大于真是有效数据行y_output,而且差值一般16对齐;
三星sensor 参数计算