MTK CCT之CAMERA TUNNING调试学习总结

  • Post author:
  • Post category:其他



分类:

linux camera


MTK




11人阅读



评论

(0)



收藏




举报


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



对于

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

的移动步数不要有太大的跳变,否则会影响照片效果。