DM8127+IMX185宽动态问题

来源:互联网 发布:mac 日历 垃圾信息 编辑:程序博客网 时间:2024/05/16 10:35


1、  数字宽动态

在做数字宽动态时,我想到了3种实现的方法,分别如下:

a、  调节gamma曲线来实现

b、  调节GBCE曲线来实现

c、  直方图均衡化

 

下面就拿GBCE来简单的讲解一下:

GBCE曲线如下:

         曲线暗部斜率越多,那么图像暗部提高亮度越高;

         中部斜率越大,图像的通透性越好;

         亮部斜率越大,图像亮部抑制亮度越强;

通过调节曲线,生成GBCE表,分别调节几组table表,用来作为不同的宽动态等级,然后融合到源码里面。在issdrv_alg2AApi.c里面的issAlg_captAProcessTI函数进行修改。

我的是添加一个函数update_gbce(output_params.iss_drv_config,ti2a_output_params.sensorGain);

 

2、sensor宽动态

由于项目的需要,需把宽动态的功能实现,于是结合sony提供IMX185的宽动态寄存器配置说明文档和SDK3.8源码进行相关配置。

1、  配置sensor端寄存器为WDR模式,这个按照sony提供的IMX185宽动态寄存器配置说明文档来配置(必须严格按照文档来配置)。

2、  设置AE曝光比为16:1

3、  修改2A相关WDR相关参数

4、  设置ISP里面WDR模块为HighQuality(这个在ISP入口函数处修改,也可以在参数配置文件里面修改),配置ISP里面WDR Link处理参数(解压缩数据参数);SDK3.8源码不支持WDR与线性模式的实时却换(每次切换都得重起ISP),我们可以修改是否调用WDR库来实现这一功能;

5、  在编译时一定得把WDR_ON改为yes,这个在Rule.make里面修改

 

打开WDR之后出现问题:

1、  图像清晰度受损比较大,整体图像给人一种蒙蒙的感觉,白平衡好像有点不对,图像整体偏绿(偏冷色)。

2、  图像在高亮度和低亮度处会泛红

3、  丢帧严重,配置为25帧的,结果只剩下10帧左右

 

泛红可以通过调节相关的sensor寄存器和曝光步长得到相应的缓解,丢帧(由于比较急,可以帧率配置为50帧,以满足项目所需的25帧需求,但这不是最终的解决办法);白平衡重做了很多次,都没有解决图像白的地方不白的现象。不知道是不是RGB中的几个分量没设置好,还是怎么样,到目前为此,上面的几个问题,一直还没得到完美的解决办法。

 

WDR的实现有想过不是用原厂提供的WDR库,自己去实现

1、  软件实现,在cameraLink里面把数据流提取来进行两帧合成一帧,可是这样需要消耗大量的系统资源,处理时间等,行不通。

2、  加一片FPGA芯片,加一片FPGA芯片的话那是最好的了,处理速度和效果都很好,而且还能实现其他的很多功能,但增加成本。

 

 

0 0
原创粉丝点击