Camera Tuning实战:HM模块调试全攻略(从原理到落地)
在Camera Tuning的AE(自动曝光)调试工作中,HM模块绝对是绕不开的核心子模块。不少同学刚开始接触时,都会被它的参数体系绕晕——Bright_Tone、Dark_Tone、Aoe、Coe一大堆参数,不知道从哪下手;调试时要么亮区过曝、暗区没细节,要么画面忽明忽暗,踩了不少坑。
其实HM模块的核心逻辑很简单:通过分析图像直方图的亮度分布,针对性调整不同区域的亮度。今天就结合我的实战经验,从原理到实操,把HM模块的调试思路讲透,帮大家少走弯路。
一、先搞懂:HM模块到底在做什么?
首先明确核心定位:HM模块是AE算法库的子模块,核心作用是“分区域亮度控制”——通过解读直方图里的亮区、暗区、过曝区分布,调整不同区域的亮度目标,让画面亮暗平衡、细节清晰。
这里必须先划重点:直方图是HM模块的“眼睛”。直方图统计了图像中0~255各个亮度级别对应的像素数量,HM模块就是通过分析直方图的峰值位置(亮度集中区域)、分布范围(动态范围)、极端亮度像素占比(过曝/欠曝程度),来判断当前场景该怎么调亮度。
还有个关键前提要注意:如果关闭LCG(亮度控制增益)或者平台不支持XTM(扩展色调映射),HM模块只能用safe部分参数,short部分参数是灰色不可调的,调试前一定要先确认平台状态,避免做无用功。
HM模块的参数体系可以分为7大块,我们调试的核心就是围绕这几块协同优化:
ConstData(基础设置)→ Bright_Tone(亮区)→ Dark_Tone(暗区)→ Aoe(大面积过曝)→ Coe(中心过曝)→ Final_Target_Limit(亮度限制)→ Final_Weight(权重分配)
二、基础铺垫:cur_lum_type参数,不用多调但要懂
在正式调试核心模块前,先了解一个基础参数:cur_lum_type,它决定了HM模块计算“当前亮度(cur_lum)”的方式,不影响Coe模块。
这个参数的作用是调整亮度统计的权重偏向,比如有的场景暗区提不亮,可能调整这个参数就有改善,但大部分时候Dark模块能覆盖,所以不用专门花时间调试,了解三种类型即可:<