原创链接:点击打开链接

对于MT6589平台camera调试的学习总结,camera调试学习的是对于raw类sensor的调试,对于yuv格式的sensor是由FAE帮助我们调试的。

首先在调试一个camera 之前要准备好调试所需要的环境,实验室是必须的,另外还要有调试的工具安装。调试camera之前要确保安装好三个工具:

1.CCT (Camera Calibration Tool)camera的大部分调试工作都是在这个工具下完成的

2.Imatest 在camera 调试CCM 部分和PCA部分所需要用到的picture分析工具

3.Customer_DP 这个工具在调试AF参数的时候可以用到以及可以验证当前的照片和所用的软件代码是否一致,以及确定camera调试的好坏。

对于CCT TOOL的使用,

一、OB的调试:

OB形成的原因是:

1)在全黑的环境下,理论上sensor感应到的电流值应该为零,但是由于暗电流的存在,则形成了OB

2)影响OB的原因还有热燥点,模组漏光,模组的电路打样等等原因。

我们在开始调试一个camrea之前要先看一下这个camera的模糊的好坏,若效果不好,是否可以通过软件的方法进行优化,这时我们就要看这颗sensor的OB 是否合理。操作方法:在一个完全黑的环境下,将camera用黑色的遮光片遮住,保证不能漏光(调试之前确认软件已经将meta模式下的闪光灯关掉,否则会影响最后的OB值),OB值可以通过两种方法得到,如图一选择菜单CDVT
Sensor Test 中的OB Stability选项,然后run,大概两分钟左右就会出现结果,点图下边的RAW
Anglysis Result,这时候我们可以先把分析验证出来的结果给export出来,然后分析这颗sensor 的性能是否OK,基本上对于不同的sensor
IC的OB值是不同的,但是同一个SENSOR IC的OB 值是差不多的,如果性能够好,则OB值相差的范围在(1~-1)左右,像我们经常使用的OV5647的OB值大概是14左右,而OV8825的OB值则是64左右。若是跑出来的OB值跟这个值有很大的悬殊,则说明这颗SENSOR的性能太差,软件调试很难改善效果。

1.通过RAW Anglysis Result得到的图标如图二所示:

2.另外一种得出OB值得方法如图三所示:

在CDVT SENSOR Calibration 菜单中直接得出OB的值,操作方法和上边一样,若客户在最后的时候说我们的sensor在capture和preivew的时候颜色,亮度等不一样,有可能是我们这颗sensor的性能不是很好,这时我们可以分别测试一下preview和capture两种情况下的OB,然后在后续调试的过程中对于preview和capture扣不同的OB,但是在一般情况下我们只需要测试一种OB即可,在得到OB之后,我们需要将OB的参数写到我们的NVRAM里边,操作菜单如图四所示:

在OB所对应的框中将调试得到的OB值填到前边的四个框中,一般情况下这四个值我们都是填的一样的,但是如果客户喜欢图片偏红一点,这时我们可以红色少扣一点,而蓝色多扣一些,这时我们R 可以填16,B就可以填17,设置完成这四个值之后,我们就按下边的按钮Calculat计算出来gain和offset,在计算完成之后我们看到图四左边还有两个对话框这时我们要将OB的值给写到对应的寄存器里边,我们总共有0~11,12组OB的数值,我们要将每组到写进去,每次写完都要点Apply
to register菜单,在12组写完之后我们可以直接点Save to NVRAM,给保存到NVRAM中去。一般情况下我们在调完一个功能的时候都会保存一个对应的.csv格式的文件,以备我们后续使用。到这里我们的OB调试已经结束,接下来我们要调试shading。

二、shading 调试

   对于shading 的调试比较麻烦是因为我们要拍出高、中、低三个色温下对应的preview catpuer video三组的九张照片,但是若对于要求不是很苛刻的客户,一般情况下我们可以低色温和中色温都在TL84这个色温下去拍,因为中色温和低色温的颜色本来也比较接近。在开始拍照之前我们要做好以下几个工作:1.手机平放在色温箱中,且要将滤光片放置在camera的上方
 2.设置好牌照的条件,如图五所示:

Banding要设成50HZ,将MF设置成100,且要APPLY,保证在capture的过程中AF是在同一个距离不动,设置好之后我们就可以拍照了,拍照的格式可以选择jpeg,然后照片大小设置成1:1,mode要自己设置,shading 的调试框如图六所示:

在我们设置完拍照模式之后,选择tuning para按钮,可设定shding要补偿的比列,通常建议设置成85%~90%,我们现在一般都设置成85%,tuning完之后我们依次按下calculate,Apply
para and table ,Apply para按钮,且save to nvram,设置完之后就可以capture了。Capture后我们可以在左上方看到拍到的照片,可以按边上的那些条件,看我们图片的shading 如何,同时可以看下边的RGBY四条曲线,好的曲线是四条线差不多重合在一起的,且是光滑和平滑的。拍完九组照片之后,我们要把参数save
to NVRAM。在这步操作完之后,我们可以将图五中shding enable这个选项给勾上,去验证我们的shading是否ok,若最后拍出来的照片RGBY四条曲线是基本平稳的,则说明我们的shading 已经调试ok.(需要注意的是我们在选择capture
mode的时候,图片的大小要改成16X16的,因为默认的是32X32的)。调试完shading 之后我们要去调试AE.

三.AE的调试:MTK不建议我们自己去调试AE,而我们在调试sensor的过程中只需要去将EV去客制化,如下图七所示:

因为mtk已经帮我们定好了一个标准,因此我们在调试AE的时候,只需要将Target LV给固定为116,calibrate 出EV
Offset的值,然后给SAVE TO NVRAM中,然后再整个的apply and save to NVRAM即可。AE在调试完之后,需要调AWB.

四、AWB的调试

     AWB的调试没有什么技巧,但是是比较费时且需要耐心的一个过程,因为我们在调试AWB的时候要拍摄(D75、DNP、Strobe)高色温、(CWF、TL84)(中色温)、(Horizon、A)低色温等七种色温的图片,这个要用灰卡进行拍摄。手机需要将整个灰卡铺满整个屏幕。且手机是固定的,拍摄之前需要将条件设置好,在图五的基础上我们只需要再进行如下设置即可,如下图八所示:

因为在上边我们已经调试好shading ,因此在这里我们可以将shading enable这个选项给勾上,同时在调不同色温的时候,要根据色温的高低选择low
mid high按钮,且在进行awb调试的时候我们mode要选择为capture ,拍照模式要选择pro Raw --10bit的(也可以选择pro
raw --8bit),但是我们刚开始调试一般都选择10bit的,拍完照片之后,在如图九所示的图中:

的左边就会出现我们刚拍的照片,我们要在照片上框一个框,然后在对应的下边的色温条中双击此时拍照模式下的色温条,则会出现这个色温下的RGB所占的权重,在拍闪光灯的时候,我们应将图五中的flash enable给勾选上拍照,在拍完七组照片之后,AUTO
TUNING 的按钮就可以使用了,点AWB Light Area按钮,此时可以看到七个色温所对应的的温度框,如下图十所示:

一般情况下我们都会自己在增加一个daylight fluolescent的框以保证所有的点都会落在框中,在增加完之后我们update,就可以看到我们新加的框了,在蓝色的框下边。

这时候我们再按preference gain按钮,将RGB三个拉BAR都拉到最左端,保证颜色肯定是灰色的,且没有偏色,一般情况下我们都不用自己手动去调节RGB的值(默认的都是512),但是若在AWB调完之后我们发现某个场景的照片有偏色也可以自己去调节RGB的值,但是不要太大。如下图11所示:

调试完这些参数之后,我们就可以将所有的参数给save to NVRAM,之后我们在将图五中的AWB ENABLE给勾选上,就可以拍照进行验证了。在验证的过程中,我们就可以用jpeg格式的照片验证,这样比较快,对于我们调试的AWB效果是否好,我们可以看图九中有一个表格,在表格下方有一个get按钮,我们可以get一下,对于高色温下一般都会占到90%以上,对于中色温和低色温则是分布的比较开,但是只要你现在的这个色温占到45%以上都是OK的。调试完awb之后,一般camera的效果都可以可以的,若还要继续调试,则可以在调试AF(因为AF 是用DP 调的,因此在说完CCT之后,我们再说AF 的调试),接下来是调试GAMMA

四、GAMMA的调试

Gamma的调试是要拍灰阶卡的,根据我们拍出来的照片去调试gamma曲线,mtk会给我们几组之前别人调过的比较好的gamma曲线,一般情况下我们只要用那些曲线就可以了,不用自己去调gamma曲线,因为调试的不好会出现图片的对比度和噪点有很大的差别。Gamma调试完之后,就是CCM的调试

五、CCM的调试

CCM的调试有一半是用CCT调的,还有一半是用Imatest调试的,CCM调试要拍24色卡,且也要拍高中低三组色温下的照片,且在调试CCM的时候,对于拍照的模式和拍出来的照片的命名方式都是有要求的。照片模式我们要选择pro
raw --10bit,照片的命名方式跟工厂模式中camera拍出来的照片的命名方式是一样的,如D65__2528x1868_10_0.raw,其中这个照片的信息D65就是在D65的这个光源下拍的,2528和1868是照片的大小,10是10bit,0是颜色格式(B:0,GB:1,GR:2,R:3),在调试CCM 的时候要确定有一个目标原W文件和gamma.csv文件,以及我们自己的照片,如下图12所示:

在我们将目标文件和我们自己的文件都导进去的时候一定要再图片上将二十色颜色都框上,同时点AUTO SELECT按钮,且弹出对话框要按no,确定不在重新导进文件。在选完之后我们要按Optimize按钮,去优化我们的图片,这时候我们可以看到上边的那个矩阵的数字变化,对角线的数字分别代表补偿的RGB的值,我们分析可以看到对于中低色温就蓝色补偿的多一些,高色温就红色的补偿的多一些。进行完这些操作的时候在我们安装工具的目录下有一个名字为optResult_CCM的文件,我们可以先点Reset
polu data按钮,将这个execl表格中的内容清空,然后按add new poly data 按钮增加一组数据,再点Gen para,apply para,apply,save to nvram,再各个色温拍照优化完之后,且进行完这些所有的操作之后,我们就可以拍照验证我们调试的CCM 结果。这时我们需要将图五中的Dynamic
ccm这个给勾选上,拍照的时候我们要拍JPEG 的照片格式,只有这样Imatest才能打开,在打开imatest的时候我们就可以分析我们现在照片的饱和度以及颜色是否偏差很大,会有一个图表出来。

 

七、PCA的调试:

 

八、AF的调试:

       AF的调试的基本是要进工厂模式下,在 Hardware Testing下有camera测试项,进入进行设置,capture
size选择就是capture size,cpture type可以选择为jpeg only(为了节省手机空间,也可以选择pure raw,这时会生成两张照片,一张raw,一张jpeg),Capture
number就选择为single,iso speed可以用默认的,strobe mode选择为off将闪光灯关掉,AF选择为FULL
SCAN,并从中选择一张最清晰的照片进行选择,然后开始preview开始拍照,因为每次AF都要跑1024步,因此拍一张照片的时间会比较长,一般情况下我们只需要对特定距离进行拍照,远景可以选择3m,2.5m,2m,中景可以选择1.5m,1m,80cm,在70cm一下就是近景了,因为在近景的情况下AF动的会比较小,且比较细,因此在70cm一下,我们就要每隔10cm进行一次拍摄,最近的距离要根据厂家提供给我们的马达可以达到的最近距离去试,一般情况下我们就测到10cm,拍完这几组照片之后,就可以用DP工具去分析AF的性能了。

运行DEBUG Parser工具,在里边有AF Table Gen功能,在这里我们可以将照片都打开,这时候在工具中就可以根据分析最近的照片得到AF的offset,且我们可以看到在不同距离,马达所在不同位置时camera达到拍照的最清晰点,我们可以直接自己计算将lens_para_FM50AF.cpp文件中AF的参数进行填写,如下所示:

const NVRAM_LENS_PARA_STRUCT FM50AF_LENS_PARA_DEFAULT_VALUE =

{

    //Version

    NVRAM_CAMERA_LENS_FILE_VERSION,

 

    // Focus Range NVRAM

    {0, 1023},

 

    // AF NVRAM

    {

        // -------- AF ------------

        {100, // i4Offset

          12, // i4NormalNum

          12, // i4MacroNum

           0, // i4InfIdxOffset

           0, //i4MacroIdxOffset         

           {

                 0,   20,  44,  72, 100, 144, 189, 242, 305, 379,

               453,  527,   0,   0,   0,   0,   0,   0,   0,   0,

             0,   0,   0,   0,   0,   0,   0,   0,   0,   0

            },

第一组参数{0,1023}是指AF总共可以运动1024步,下边的100是指AF的起始值,AF在100以后才会达到第一次最清晰的点,下边的两个12,是指下边数组中AF可以移动的步数,即下边数组中AF移动的步数的个数,我们可以自己手动填这个文件,也可以将这些数给输入到CCT工具里,自动生成参数,如下图所示:

若我们马达的静深不够深,我们会发现在我们拍的照片中,每个照片所达到最清晰状态,AF移动的距离都很小,这时我们就要将我们camera近距离拍照的距离再缩短一些,可以每5cm拍一张照片,否则在近距离拍照的时候,有可能会错过最清晰的点,则拍出来的照片效果会不好,照片增多了,我们上边数组中的个数也要增加,如{

                 0,   20,  44,  72, 100, 144, 189, 242, 305, 379,

               453,  527,   0,   0,   0,   0,   0,   0,   0,   0,

             0,   0,   0,   0,   0,   0,   0,   0,   0,   0

            }这个数组所示,基本上AF每步移动的距离都是差不多的,因此我们再调试的过程中也要注意AF的移动步数不要有太大的跳变,否则会影响照片效果。



CCT之CAMERA TUNNING调试学习总结的更多相关文章

  1. eclipse debug (调试) 学习心得

    eclipse debug (调试) 学习心得   进入debug模式:   1.设置断点   2.启动servers端的debug模式   3.运行程序,在后台遇到断点时,进入debug调试状态   ...

  2. OD调试学习笔记7—去除未注册版软件的使用次数限制

    OD调试学习笔记7—去除未注册版软件的使用次数限制 本节使用的软件链接 (想自己试验下的可以下载) 一:破解的思路 仔细观察一个程序,我们会发现,无论在怎么加密,无论加密哪里,这个程序加密的目的就是需 ...

  3. vlc源码分析(七) 调试学习HLS协议

    HTTP Live Streaming(HLS)是苹果公司提出来的流媒体传输协议.与RTP协议不同的是,HLS可以穿透某些允许HTTP协议通过的防火墙. 一.HLS播放模式 (1) 点播模式(Vide ...

  4. PX01关于手机屏SPI触摸调试学习笔记

    上位机工具:http://www.xk-image.com/download/blog/0002_TP调试/LcdTools20210605.rar 调试案例:http://www.xk-image. ...

  5. PX01关于手机屏IIC触摸调试学习笔记

    相关文件下载: 上位机工具:http://www.xk-image.com/download/blog/0002_TP调试/LcdTools20210605.rar 调试案例:http://www.x ...

  6. 【转】Android之内存泄漏调试学习与总结

    大家有或经常碰到OOM的问题,对吧?很多这样的问题只要一出现相信大家的想法跟小马的一样,就是自己的应用:优化.优化.再优化!而且如果出现类似于OOM这样级别的问题,根本就不好处理,LogCat日志中显 ...

  7. Android USB Camera(1) : 调试记录【转】

    转自:http://blog.csdn.net/eternity9255/article/details/53069037 版权声明:本文为博主原创文章,未经博主允许不得转载. 目录(?)[-] 前言 ...

  8. idea DeBug调试学习

    在Intellij IDEA中使用Debug 目录 一.Debug开篇 二.基本用法&快捷键 三.变量查看 四.计算表达式 五.智能步入 六.断点条件设置 七.多线程调试 八.回退断点 九.中 ...

  9. Windows调试学习笔记:(二)WinDBG调试.NET程序示例

    好不容易把环境打好了,一定要试试牛刀.我创建了一个极其简单的程序(如下).让我们期待会有好的结果吧,阿门! using System; using System.Collections.Generic ...

随机推荐

  1. Matplotlib Toolkits:python高级绘图库seaborn

    http://blog.csdn.net/pipisorry/article/details/49515745 Seaborn介绍 seaborn (Not distributed with matp ...

  2. Hadoop学习笔记1:伪分布式环境搭建

    在搭建Hadoop环境之前,请先阅读如下博文,把搭建Hadoop环境之前的准备工作做好,博文如下: 1.CentOS 6.7下安装JDK , 地址: http://blog.csdn.net/yule ...

  3. Unity UGUI图文混排源码(三) -- 动态表情

    这里是根据图文混排源码(二)进一步修改的,其他链接也不贴了,就贴一个链接就好了,第一次看这文章的同学可以先去看看其他几篇文章 Unity UGUI图文混排源码(二):http://blog.csdn. ...

  4. 关于tomcat中Servlet对象池

    Servlet在不实现SingleThreadModel的情况下运行时是以单个实例模式,如下图,这种情况下,Wrapper容器只会通过反射实例化一个Servlet对象,对应此Servlet的所有客户端 ...

  5. 插件占坑,四大组件动态注册前奏(一) 系统Activity的启动流程

    转载请注明出处:http://blog.csdn.net/hejjunlin/article/details/52190050 前言:为什么要了解系统Activity,Service,,BroadCa ...

  6. Android初级教程实现电话录音

    需求:设置来电后自动录音. 首先设置一个按钮,代码很简单这里就不再给出. 建一个类,RecorderServicer extends Service package com.ydl.recorder; ...

  7. Java 学习之反射机制“解刨”分解类,并获取内容!

    正常情况下,单纯的做开发是接触不到反射机制的(额,当然并不排除例外的情况了).下面我就对我学到的反射方面的知识做一个小小的总结,旨在复习和以后的查看. 原理分析: 所谓反射就是将一个类当做我们研究的对 ...

  8. Android官方命令深入分析之绘制9-patch

    9-patch是一个所见即所得的编辑器,允许你创建可以自动更改大小适应屏幕的bitmap图像.被选中的部分可以水平或垂直的进行缩放. 下面是使用9-patch工具创建一个9-patch图像的实例,首先 ...

  9. CentOS6 上OpenWRT交叉编译

    目的不是为了编译固件,而是为了一个是编译可执行文件,放倒op的路由器上跑,另一个目的是安装一些开源软件折腾下(例如ss-lib),需要打包成 .ipk 格式 路由设备信息 erya@ERYA:~$ c ...

  10. Leetcode_67_Add Binary

    本文是在学习中的总结,欢迎转载但请注明出处:http://blog.csdn.net/pistolove/article/details/40480151 Given two binary strin ...