http://www.16rd.com/blog-5282-237.html

ob 静态电流

shading 阴影,

3a

GAMMA:拍灰阶卡,

CCM Color Correction Matrix简称CCM,意为色彩校正矩阵,用来校正人眼和Sensor对色彩的响应的差异。

isp 是image signal processing,用于图像处理,比如gamma调整,dynamic range correction,smmoth,sharpness,format convert,resize,edge enhancement ,color correction等操作都是这里完成的
3aa 是ae/af/awb algorithms。 3aa 的硬件模块分析输出3a的统计信息。3aa软件是分析统计信息值进行算法处理。

3A:
AE/AF/AWB 。对应的是相机的功能,即自动曝光,自动对焦和自动白平衡。三个功能的实现都需要软硬件结合起来实现。但基本都是一个负反馈闭环控制系统,即状态硬件模块输出亮度值/FV值/灰度空间,然后对应的3A算法进行计算反馈到相应的处理单元做处理,知道相应的值稳定下来。

ISP:Image Signal Processor ,即图像信号处理器,形式上指一个硬件,和CPU类似。但现在
ISP都是泛指,因为相机硬件中很多单独硬件模块组成,如做色彩转换的,做滤波降噪的,有做裁剪,做旋转的。

对于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的移动步数不要有太大的跳变,否则会影响照片效果。

https://blog.csdn.net/zhangbijun1230/article/details/79697559

基本概念:

FV: Focus Value, 用来衡量图像AF的清晰度。 
DOF: Deep Of Field, 景深,表示物距清晰的范围,景深越长表示物距前后清晰的范围越大。 
 
抛物线的顶点即是AF最清晰的地方。

AF search table原理:

利用DOF概念,控制AF search table中每个step的间隔要小于DOF,确保找到的Focus Position和最佳的Focus Position(抛物线顶点处)不超过DOF,这样就能保证图像清晰了。

AF search table建立方法:

不同距离拍照得到不同的Focus Value Curve, 然后求得对应的DOF。 
DOF的量化是最佳FV的95%以上,根据清晰度情况作适当调节。 
AF的距离是从10cm ~ 3m, 测试间隔距离肯定是越细越准确,可以不等分为15段测试,距离越近,分段越多。可以从3m开始,每拉近40cm拍一张,距离1m以内,每10cm拍一张,距离10cm以内,每2cm拍一张。

最大DOF:

假定当前DOF为a, 每次对a+1, 当一直加到DOF看不清时,那么此时就是最大DOF,那么也是测距离最大step,否则超过此step就会导致看不清。

AF线性模型:

采样若干个点,得到一条斜率,这样后面的点也可以推算出来,此时为最大斜率,如果超过它,则会超过最大DOF。AF的tuning就是调整此斜率的高低,斜率越小则AF速度变慢。

AF拍摄注意事项:

  1. 拍摄对象必须为高对比,Edge清晰的图形。
  2. 手机必须固定,避免摇晃。
  3. 光源必须明亮。这样,距离间隔越近,产生的AF table准确度越高。

增加table精确度(DOF范围),会降低AF速度,减少Focus Step, 增加 Focus Index。


Tuning:

概念:

目前手机基本上都是用被动式AF,基本上FV越大则越清晰,不过也有例外: 
1. 亮度太低,Gain太大,导致noise影响FV。 
2. 画面过于Smooth没有Edge,导致noise影响FV。

AF模式:

SAF和TAF使用同一组调试参数,AF搜索范围,table, 精度,速度。 
MAF虽然参数和SAF一样,但由于多点同时对焦,且以最近焦的点为中心,因此performance会相对差一些。 
CAF为了保持对焦的smooth,所以没有使用AF search table,而使用固定的AF step搜索。

MTK CAMERA TUNNING相关推荐

  1. mtk camera 移植步骤

    mtk camera 移植步骤: 1, Kernel层驱动代码文件添加 /mediatek/custom/doov92_wet_tdd/kernel/imgsensor/下添加imx179_mipi_ ...

  2. Camera4 MTK camera驱动结构介绍

    一.概述: MTK  camera主要的内容在hal层,现在有hal1/hal3,当下主流的使用的是hal3,驱动主要负责sensor 电源的控制以及sensor相关寄存器的操作,MTK采用设备和驱动 ...

  3. Mtk Camera中Hal1/Hal3的Picture size和Preview size配置

    在进行camera系统开发时,总会碰到产品需要,需要一个添加一个多少多少M的照片大小,比如产品经理说我们也要添加一个1:1,添加一个18:9的照片大小.这个情况很常见了,所以这篇文章总结一下平常工作中 ...

  4. MTK Camera 基础知识

    文章目录 数字成像系统流程综述 曝光 对焦马达 镜头(lens) MIPI数据与RAW数据的转换(未完待续) ISP的主要内容和Bayer Raw的处理 RGB.YUV和YCbCr三种颜色空间 补充 ...

  5. MTK平台开机初始化时 camera驱动流程|MTK camera调试常见几十种问题处理方法

    转载:https://www.jianshu.com/p/75ab1d82bbd3 mtk的驱动多是以模块加载的方式(module_init():module_exit():)加载到内核中去的:正因为 ...

  6. MTK camera flashlight bring up

    MTK camera flashlight bring up MTK camera flashlight bring up 一查看硬件原理图 front camera rear camera key ...

  7. android mtk camera startpreview,android8.1 mtk camera hal各种操作流程

    最近一年,一直在做android上的视频编解码和录相.以及camera hal和系统框架这一块.随着做的慢慢的深入,越发觉得mtk的camera hal这一块,有其独到之处.偏偏网上相关的资料却是极少 ...

  8. MTK Camera驱动移植

    对于MTK Camera驱动移植一般分为四部分: 1.硬件IO口配置: 2.Camera驱动移植: 3.上电时序: 4.修改i2c控制器: 硬件电路: 1.GPIO配置 打开 mediatek\dct ...

  9. mtk camera移植

    mtk camera 移植步骤: 1, Kernel层驱动代码文件添加 /mediatek/custom/doov92_wet_tdd/kernel/imgsensor/下添加imx179_mipi_ ...

最新文章

  1. 某程序员因开发进度慢,被公司索赔90万!
  2. ubuntu下Rhythmbox音乐播放器乱码的解决方案
  3. django 各种包的集合网站
  4. 各大网站猪年新春应景LOGO秀
  5. 三只松鼠7月12日登陆创业板 募资60亿元
  6. Python 猜数字游戏
  7. 毕业生,管好你的档案和户口
  8. slickedit背景颜色和当前关键字高亮
  9. jquery日历插件 途牛_jQuery日历插件FullCalendar中文版
  10. 5G 智能融合城域网特点与组网方案
  11. 加拿大高中课程计算机科学,加拿大高中课程
  12. 微信支付功能测试用例
  13. 信息安全-终端安全-Windows安全配置
  14. JSjavascript获取B站封面图片超高清批量下载原图
  15. 通过js实现页面布局
  16. HDU2188——悼念512汶川大地震遇难同胞——选拔志愿者(Bash Game巴士博弈)(我去,名字肿么这么长)
  17. 森林救火与计算机相关,无人机森林防火解决方案包含了哪些技术?
  18. 掌纹与掌静脉融合matlab代码,手形、掌纹和掌静脉多特征融合识别
  19. 买车容易行路难-撞车
  20. 为你的WSL 2编译一个最新的Linux内核吧!

热门文章

  1. windows如何彻底删掉360安全卫士(全是干货!!!)
  2. 前端项目开发经验总结(持续更新)
  3. 如何绑定域名(基于腾讯云)
  4. 详解离线语音和在线语音的区别
  5. Java修真界(斗之气九段)
  6. 如何制定一份高质量的测试计划
  7. java image 透明_Java实现图片透明效果
  8. 传智播客超级设计师在线就业班招生啦
  9. 美财长耶伦:加密市场动荡不会对美国金融稳定构成“真正威胁”
  10. python中divmod_python中divmod是什么