我在imx334的源码上进行的修改,所以基本上替换些不同的寄存器啥的就OK了

一、看sensor规格书

首先进规格书里查找AE那块 所需的配置,并手动改改对应寄存器看看是否正常

1、曝光行(shutter)

在这里插入图片描述
看手册:shutter 0x3050~0x3052
修改SHR0 曝光行 0x3050~0x3052,因为我暂时没镜头,只能观察到画面稍微闪动一下,对比不明显,就不放上来了

2、增益(gain)

在这里插入图片描述
增益修改GAIN: 0x306C~0x306D
在这里插入图片描述
在这里插入图片描述
可以观察到拉高增益后带来的过曝

3、降帧

在这里插入图片描述
修改VMAX降帧:0x3028~0x302A,比如 008CA-> 00D2F,从30帧降到20帧
在这里插入图片描述
在这里插入图片描述
能看到拉流工具显示的帧率变换能对的上

备注下,海思自带的拉流工具,底下的Exp_time(us) = 1/fps * 1/vts,第一次看的时候想当然的以为是曝光时间,没想明白为啥是这个数= =

4、gain_table

弄个将dB转化为线性的表,再将对应dB转换下,不理解如何算的可以参考这篇db与linear转换
公式:假设 XdB,转换后的linear为Y,gain为Z

Y = 10^(X/20) ,Z = Y * 1024

根据手册能查到,IMX585按0.3dB递增,Max dB为72,我不想一个一个算,就直接拖了个Excel表格
在这里插入图片描述
右边就是gain_table需要填入的数

二、sensor驱动源码的修改

手动修改相应寄存器无误后,将寄存器和数组填入驱动源码对应的地方即可
在这里插入图片描述
在这里插入图片描述

三、修改后的sensor驱动测试

驱动修改完之后,编译sensor驱动放板子上进行测试,忘记咋操作的话可以参考初步点亮的这篇https://blog.csdn.net/sashimi69/article/details/140477349
观察到曝光行 增益能正常随着环境亮暗进行变化,且未观察到画面闪烁等AE异常问题,说明AE初步配置就已经OK了。
如果测出闪烁或者水波纹之类的亮度问题,参照3A开发指南进行参数修改

1、AE闪

在测试过程中碰到了亮度闪烁问题

  • 现象:在室外场景,某个亮度增益区间出现画面闪烁,通过修改目标亮度compensation可以消除和复现这个问题
  • 解决(规避):根据3A开发手册和sensor调试指南排查了一遍,没定位到问题,最后增大Tolerance(自动曝光调整对画面亮度的容忍偏差) 貌似能解决这个问题。
    感觉这样只是规避,不是彻底解决,后续有空再研究研究

主要自己记录流程,欢迎大家参考交流,有啥不足或者写的有误的欢迎提出来

Logo

海思 HiSpark 开发者社区是上海海思为开发者搭建的内容和交流平台,依托完备芯片解决方案、专业开发环境、开源/开放的软件资源与社区技术内容,构建完整服务生态开发者的闭环体系。

更多推荐