前言
- 毕业就进入camera group做software开发,camera group一供分了三个小组:软件(software)、画质调优(tuning)、算法(algorithm),一直在思考三个小组之间是怎么一种关系,谁更重要一些?
- 通过一个camera pro mode 调整EV的bug对这个问题有了更深入的理解,先说结论:software and algorithm都是对tuning服务的!
bug背景
- camera 进入pro mode设置EV为-4,最小化camera APP然后重新进入(热启动),发现预览画面会闪烁一帧。这个bug最开始从software开始debug,我从camera app -> libcameraservice -> camera HAL的参数设置流程分析,最后到查到是AEC algorithm的问题。但是AEC的负责人反馈的是warm start的策略问题,warm start是tuning设置,让用户一种有更好体验的方式,tuning负责人说客户和我们warm start方案并不一样导致的,客户是使用当前调整的EV -4值开始收敛,而平台是使用EV 0。
通过bug思考模块之间的关系
- 在camera pro mode中,设置EV参数流程software和algorithm两部分都是没有bug的,software正确的把APP参数设置到AEC algorithm中,AEC algorithm正确处理设置下来的EV参数值,都是正确的。但热启动之后camera exposure time and gain值收敛到合适的范围需要时间,这段期间preview画面非常的不稳定,可能会高光闪烁或者场景昏暗,体验非常的不好。 这个情况就需要tuning enginer去做出camera app热启动的场景下的策略修改,让software传输时刻参数给AEC,让AEC algorithm在退出之前,把EV状态值传输给software保存在warm start模块中。
- 所以说software和algorithm都是为tuning服务的,只为能给用户提供更好的使用体验。哪个模块直接面向客户、能让客户感知,那就是最重要的模块,这个模块的enginer决定策略如何修改,其他模块配合。这应该也就是以市场为导向的企业吧!
warm start策略:热启动进入相机时,会使用上一次退出相机时,最后一帧的EV设置状态下,AEC algorithm计算过程中的参数值进行计算exposure time and gain value。这样再次进入camera APP,可以很快收敛到当前环境曝光,防止出现设置EV值-4的情况下,重新进入相机preview暗环境闪烁的现象。
文章评论