美文网首页
【Camera专题】OV8856固定fl_line,line,g

【Camera专题】OV8856固定fl_line,line,g

作者: c枫_撸码的日子 | 来源:发表于2019-04-07 09:06 被阅读0次

问题

我们调试效果的同事,在调试效果时,需要固定不同的gain,line,fl_line值,
这样强行固定,会出现问题。
在打开相机和拍照的时候,瞬间闪屏,闪的颜色红色或者绿色等等其他颜色!

static int32_t ov8856_z8856ah_new_fill_exposure_array(uint16_t gain, uint32_t line,
  uint32_t fl_lines, int32_t luma_avg, uint32_t fgain,
  struct msm_camera_i2c_reg_setting* reg_setting)
{
  int32_t rc = 0; 
  uint16_t reg_count = 0; 
  uint16_t i = 0; 
 +char value1[10];
+ char ln_count[10];
 +char gain_new[10];// based on 64
+ property_get("debug.enable.lock", value1, "0");
+ property_get("debug.ae.ln", ln_count, "0");
+ property_get("debug.ae.gain", gain_new, "0");
 
+ int ae_lock = atoi(value1)>0?1:0;
 
+ if(ae_lock){
+  fl_lines = atoi(ln_count);
+  line = fl_lines;
+  gain = atoi(gain_new);
+ }
   ···
  }

解决办法

通过观察fl_line和line的关系,我们发现,
fl_line和line始终差8,于是

+ if(ae_lock){
+  fl_lines = atoi(ln_count);
+  line = fl_lines-8;
+  gain = atoi(gain_new);
+ }

这样子能达到效果调试的要求,也不会带来闪屏问题。
这个差8是怎么来的呢?

static struct msm_sensor_exp_gain_info_t exp_gain_info = {
  .coarse_int_time_addr = 0x3500,
  .global_gain_addr = 0x3508,
  .vert_offset = 8,
};

这里的vert_offset=8,就是fl_line和line的差值!
ps:
fl_line是frame_length_lines,代表帧长,用于调整帧率
line是line_cont:曝光行数,可以理解为曝光时间,用于调整亮度
gain相对于sensor来说是模拟增益,用于调整亮度

image.png

Stay hungry,Stay foolish!

相关文章

网友评论

      本文标题:【Camera专题】OV8856固定fl_line,line,g

      本文链接:https://www.haomeiwen.com/subject/kvyjiqtx.html