eeprom data lsc值的计算

高通 eeprom lsc值的计算

在eeprom烧录中 lsc的值需要驱动中自己计算
LSC: Lens shading and Color shading

reasons:

  1. Camera module assembly variation such as l ens holder alignment with camera module
  2. Lens assembly variation
  3. Sensor micro lens variation(sensor CRA variation).
  4. Pan/tilt of image sensor during assembly

计算

数据存放格式
总共抓取17*13 block,获取每块的四通道平均值:
R_spc = (Measured Red average / R_max) * 1023;
Gr_spc = (Measured Gr average / Gr_max)*1023;
Gb_spc = (Measured Gb average / Gb_max)*1023;
B_spc = (Measured Blue average / B_max) *1023;

低位在前 高位在后

在这里插入图片描述

	lsc_buf = e_ctrl->eeprom_params.buffer + LSC_DATA_OFFSET;
	
  for (light = 0; light < ROLLOFF_MAX_LIGHT; light++) {
    e_ctrl->eeprom_data.lsc.lsc_calib[light].mesh_rolloff_table_size =
        LSC_GRID_SIZE;
  }


  for (i = 0; i < LSC_GRID_SIZE * 8; i += 8) {
    gain_r  = lsc_buf[i + 0]  | lsc_buf[i + 1]<< 8;
    gain_gr = lsc_buf[i + 2]  | lsc_buf[i + 3]<< 8;
    gain_gb = lsc_buf[i + 4]  | lsc_buf[i + 5]<< 8;
    gain_b  = lsc_buf[i + 6]  | lsc_buf[i + 7]<< 8;

    for (light = 0; light < ROLLOFF_MAX_LIGHT; light++) {
      e_ctrl->eeprom_data.lsc.lsc_calib[light].r_gain[i/8]  = gain_r;
      e_ctrl->eeprom_data.lsc.lsc_calib[light].gr_gain[i/8] = gain_gr;
      e_ctrl->eeprom_data.lsc.lsc_calib[light].gb_gain[i/8] = gain_gb;
      e_ctrl->eeprom_data.lsc.lsc_calib[light].b_gain[i/8]  = gain_b;
    }
  }

高位在前 低位在后

在这里插入图片描述

	lsc_buf = e_ctrl->eeprom_params.buffer + LSC_DATA_OFFSET;
	
  for (light = 0; light < ROLLOFF_MAX_LIGHT; light++) {
    e_ctrl->eeprom_data.lsc.lsc_calib[light].mesh_rolloff_table_size =
        LSC_GRID_SIZE;
  }


  for (i = 0; i < LSC_GRID_SIZE * 8; i += 8) {
    gain_r  = lsc_buf[i + 0] << 8 | lsc_buf[i + 1];
    gain_gr = lsc_buf[i + 2] << 8 | lsc_buf[i + 3];
    gain_gb = lsc_buf[i + 4] << 8 | lsc_buf[i + 5];
    gain_b  = lsc_buf[i + 6] << 8 | lsc_buf[i + 7];

    for (light = 0; light < ROLLOFF_MAX_LIGHT; light++) {
      e_ctrl->eeprom_data.lsc.lsc_calib[light].r_gain[i/8]  = gain_r;
      e_ctrl->eeprom_data.lsc.lsc_calib[light].gr_gain[i/8] = gain_gr;
      e_ctrl->eeprom_data.lsc.lsc_calib[light].gb_gain[i/8] = gain_gb;
      e_ctrl->eeprom_data.lsc.lsc_calib[light].b_gain[i/8]  = gain_b;
    }
  }
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值