这里算法细节比较多,主要介绍两个核心点。
第一个是将SDR亮度对比度拉起来变成HDR亮度对比度,这里强调的是要做自适应。因为一条单独的曲线不能适应各种各样SDR场景,以及各种各样的明暗区分布,所以我们做了一个基于统计的亮度自适应调整算法。比如基于帧级来说,我们会统计每一帧的亮区、暗区、中区分布占比,占比影响转换曲线等。转换曲线是自适应的,里面有很多拐点,拐点的亮度拉多高多低,曲线最后的形态是由统计的数值而生成的。所以我们是基于每一帧的不同具体画面生成不同的转换曲线,从而生成相应的HDR达到最好效果。
第二个核心点是饱和度的提升,从SDR到HDR会做色域的饱和度提升,这里会发现一个问题,直接提升饱和度然后生成HDR,会发现草地风景等颜色饱和多了层次感,但人像皮肤容易过曝,所以肤色是需要特殊处理区域。因此,我们对肤色分割后,对肤色部分使用柔和饱和度算法提升,然后其他区域使用普通饱和度提升,中间设置有过度区及羽化处理等,不能出现断层,这些bad case也要做到细节控制。
下图是我们SDR生成HDR算法的效果图,可以看出来无论是从对比度、亮度和色彩方面,均有较明显的画质效果提升;
2.4 音频增强:3D环绕声场在音频增强方面,大多数流媒体平台只能获取双声道,且UGC音频存在声场狭窄、音质受损等问题。对此,我们的解决方案是利用双声道打造立体环绕声,针对左右两声道进行不同的滤波处理,获得声场展开效果,对于低频部分我们做了一定的增益和动态压缩,来获得更稳定的鼓声和bass以及部分人声的基频。
2.5 快手算法特有亮点:融合增强处理(All in One)