1 选择feature
双摄算法是很常见的算法,在MTK已预置一些双摄的feature,总结下大概有以下feature是用于双摄的:
vendor/mediatek/proprietary/www.shyejk.com/hardware/mtkcam3/include/mtkcam3/3rdparty/mtk/mtk_feature_type.h:
customer部分定义的feature,其中TP_FEATURE_DEPTH和TP_FEATURE_BOKEH也是用于双摄虚化,并且计算深度和模糊处理星苑手游也是在两个分开的node进行。TP_FEATURE_FUSION和www.shyejk.com/TP_FEATURE_PUREBOKEH是用于双摄虚化的,但是它们将计算深度和虚化处理放在同一个挂载点进行。TP_FEATURE_HDR_DC是用于双摄HDR算法的。
按MTK的设计意图来看,MTK_FEATURE_DUAL_YUV和TP_FEATURE_DUAL_YUV两个feature应该也是可以用于双摄算法的,但是我没有试过,我一般用TP_FEATURE_FUSION或者TP_FEATURE_PUREBOKEH,有兴趣的童鞋可以自己试一下。
既然MTK已经预置好了,这一步我们就对号入座,不用再额外添加feature。由于是第三方算法,所以我们选择TP_FEATURE_PUREBOKEH。
2.2 配置feature table
上一步,我们选择了TP_FEATURE_PUREBOKEH,MTK很贴心的在vendor/mediatek/proprietarywww.shyejk.com/hardware/mtkcam3/3rdparty/mtk/mtk_scenario_mgr.cpp中已经定义了一个MTK_FEATURE_COMBINATION_TP_PUREBOKEH。所以定义这一步我们也省了,星苑手游只需要将MTK_FEATURE_COMBINATION_TP_PUREBOKEH添加到对应的MTK_CAMERA_SCENARIO_CAPTURE_DUALCAM。这里由于我们没有其它双摄算法,将其它两行注释掉。