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