我于2021年夏开始学习camera tuning,至今大半年的时间了,做了一个8M的前置摄像头的调试。有些简单的调试心得与君分享,随着学习和工作的深入,还会持续更新这篇博文。若发现描述的不对的地方,请评论指正。希望这份总结对初学camera tuning的你,有所帮助。
目录
1. 曝光表
2.了解下卷帘曝光和全局曝光
3.gamma校正验证
4. GTM
5. LTM
6. TMC
7. luma target
8. AE在gamma验证过后才能校正CC
9.Bright && dark region(一般不用)
10. Histogram
11. Frame luma
12. Extreme color
13. Flash (详细参考80-NK872-14)
14. Face
计算最小曝光时间的公式
Min line count to min exposure time formula:
min_line_count / (max_fps * max_line_count_in_max_fps) * 1,000,000,000 = min_exposure_time[nanoseconds]
− E.g. 1 / (30 * 3186) * 1,000,000,000 = 10462 [nanoseconds]
sensor 配置文件的路径:
vendor/qcom/proprietary/chi-cdk/oem/qcom/sensor/s5k3l6
max_line_count_in_max_fps = frameLengthLines
Vertical blanking time = {min_line_count/(max_fps * max_line_count_in_max_fps)} / min_line_count * 100000000 * vertical_offset
= min_exposure_time[nanoseconds] / min_line_count * vertical_offset
关于卷帘快门逐行曝光所造成的“果冻效应”浅谈 - 知乎首先,弄明白这个原理之前要先深入了解一下 快门(Shutter)的概念。 一、快门概念 我们经常听到“快门速度”这个词,通俗意义上说,这其实就是指光线通过镜头照射到传感器(即感光元件)上所需要的时间,这个过程…https://zhuanlan.zhihu.com/p/42884945
测试环境:TL84,灰阶卡
测试步骤:
1.在室内,室外,暗处环境下,拍摄灰阶卡
2.open imtest ->stepchart,导入灰阶图。
3.默认参数,点击OK
4.生成了Excel表,在图片的位置下。
5.一般客观有要求,相邻两阶要大于8,并且这样的阶数要大于等于13阶。(这个每个公司的要求不同,依据每个公司客观标准而定)
gamma调整注意事项:
GTM会影响全局的值。gGTM一般不动,影响比较大。主要就是调试下面两个框。
LTM也是分为室内,室外,暗处
LTM Strength: LTM 强度,不建议开大,开大的话,副作用很大。可能会有闪烁,色泽溢出,来回跳变。所以这块强度不建议太大。Lowlight情况下,开的很大的话,会引起红噪问题。
Dark Boost:提升暗处细节。
Bright Suppress: 抑制高亮,但是通常室外的高亮通过LTM的bright suppress,抑制的力度是很小的。还是要通过ADRC去调试。
点击region data,Lce Strength可以用来调节黑色字体的对比度。
其他参数基本上是不动的。
LTM需要在histogram调试完毕之后,再调试。
只有当historgram 调试的差不多时候,才会去调试TMC。
可以根据实际情况,划分的更加细致。
配置好luma target,客观结束。
测试方法:可以拍一个平坦区,对比对比机的平坦区的亮度。向对比机去靠。
gamma校正,需要用灰阶卡测试,动态范围通过了才能算过。这样就可以校正CC了。
根据设置的bright和dark region的范围,对bright和dark区域,要么做一个丢弃,要么做一个权重的重新分配。
一般camera HAL会下发center weighted的配置,tuning参数无法控制。
一张图片会划分成很多个像素格,在这张图片中找到对应的像素点所在的像素格,和它的weight表去做一个乘积,然后得到最终的一个权重,来调整它的亮度。
1. 在初始调试时,首先 ADRC 和dark boost的关闭的。尤其是前摄,可以不开ADRC,直接用histogram条件亮度。
Dark boost用ISP dgain补的亮度,噪声会很多,去噪会去不掉。
2. ISP gain 可以根据AE table设置结果,平台来动态计算ISP GAIN的值。
3. 主要调试下面这6个值。
short target 用来压高亮的曝光
Bright_low_target,Bright_high_target,Dark_low_target,Dark_high_target分别会受到hist_sat_low_ref,hist_sat_high_ref,hist_dark_low_ref,hist_dark_high_ref的影响。
对于Bright_low_target,Bright_high_target,Dark_low_target,Dark_high_target尽量调试hist_sat_low_ref,hist_sat_high_ref,hist_dark_low_ref,hist_dark_high_ref,而不要调试hist sat pushup range,hist dark range,因为这样会使得变量很难控制。
参数之间的关系如下图所示:
增加hist_sat_low_ref,hist_sat_high_ref,hist_dark_low_ref,hist_dark_high_ref会对应增加Bright_low_target,Bright_high_target,Dark_low_target,Dark_high_target。
low_target和high_target则会受到上面Bright_low_target,Bright_high_target,Dark_low_target,Dark_high_target值的影响,从而决定了最终的low_target和high_target。
safe target首先会受到low_target和high_target影响,产生第一步值。
如下图所示:
然后则会受到MaxTargetAdjRatio,MinTargetAdjRatio, luma target(reference_target)的影响,产生最终值。如下图所示:
减小MaxTargetAdjRatio,增加MinTargetAdjRatio,也会提高safe target。
Note: History-based targets should be histogram-based targets in above image.
Frame luma 取决于设定的ISO的感光性,曝光时间,环境亮度。
如下图,gain为16的时候,frame luma 为5,尽管luma target设置为40,但是frame luma 最多为5,最终的luma不能超过frame luma。
相同的环境下,设置gain为64,frame luma为24,但是噪点非常多。
在室内亮光环境下,gain值为8.5,frame luma为50,仍然比设置的target luma要低。
5. reference target 就是luma target。adrcGAIN设置的较大的话,可以使得short target变小,就可以压制住高亮过曝。 Final luma会根据safe,long, short的最小值来计算。
6. Dark boost,不要设置的过大,或者不用设置。
7. 关于Max DRC Gain,会限制对应lux范围下最大的gain值。若是该范围下的gain值太小,可能达不到gain的要求。若是太大,又会产生很多噪点。
极端色改亮度,可以考虑打开extreme color。在主观测试的时候,可以在实验室搭建红绿蓝三色背景布来调整。
Lux-based safe target:设置的luma target。
Color-based safe target: 若是触发了extreme color 计算,则得出的基于histogram计算和extreme color计算得出的target。
History-base target: 通过histogram计算出来的target。
Final target: 基于按照luma target,histogram target,Color-based safe target顺序,最后算出来的target。
详细情况请参考:KBA-190716022135
1. Enable lux face target一般不打开,打开了之后,face会依据lux face target进行划分。
2. 在拍摄视频的时候,忽然遇到人脸,但是很快又灭了,导致人脸会有个震荡。这个时候可以把stat update delay time Enter 加大一些。让人脸保持的时间长一些。