2,968
社区成员




首先看代码先确定HAL3中getsensitivity和setsensitivity对应操作到的参数具体是ISO值(也就是驱动中对应的gain值),发现每次都有略微的差值,怀疑是哪边的某种转换丢失了部分值,确定最终下到驱动的值是多少(发现和get到的值一致,也是丢了某些精度).代码从下往上排查传入sensor_fill_exposure_array的gain参数在传入前有没有什么转换(同时邮件咨询FAE驱动中有无对应转换动作),代码上看到gain在传入sensor_fill_exposure_array前(set_exposure时)经过了驱动接口的sensor_calculate_exposure函数的操作,使的gain值失去了一定的精度.咨询FAE得知是由于sensor本身并不是无级的可设置gian值,需要根据下发的gain切到对应的实际能支持的最接近的gain值上.所以和下发的gain值有了略微区别.
解决方法:针对对应sensor型号,把转换前的gain值赋值给获取sensitivity会读取的参数上.
原文链接:https://blog.csdn.net/liujun3512159/article/details/123946890