编者按:快手平台上视频类型繁多,且视频源的画面质量存在较大差异。“面对种类多且质量差异较大的视频,如何让用户获得更清晰的观看体验?”对于这一问题,快手音视频技术团队深入研究智能音视频修复及增强处理等相关技术,打造“快手质臻影音”,为用户提供极致视频体验。本次LiveVideoStackCon 2022上海站大会,我们邀请到了快手音视频高级算法工程师何刚老师,为我们分享了快手平台视频多样性和处理挑战;针对这些挑战提出的智能修复和增强算法;以及质臻影音的落地方案。
文/何刚
整理/LiveVideoStack
大家好,我是何刚,距离我上次参加LiveVideoStack2019年分享视频增强算法已过去三年之久,这三年发生了很多故事,也对所处领域带来了很多机遇与挑战。对我来说最让我荣幸和开心的是加入快手音视频算法团队,并和团队一起完成很多有意义的工作。这次主要就来分享下我们团队在视频增强修复方面做了哪些工作。
分享主题为《快手质臻影音:视频智能修复及增强技术》,内容包含以下三个方面:第一是介绍快手平台视频多样性和处理挑战;第二是针对处理挑战,我们提出的智能修复和增强算法;第三是团队如何用增强算法解决挑战并构成体系,即质臻影音的成功落地方案。
1、快手平台视频多样性和处理挑战
1.1 快手视频内容多样性及处理挑战
快手应用平均日活跃用户达3.47亿,每天新视频上传量在千万量级。针对如此大规模的视频数量进行增强修复和画质提升,主要有如下两个方面的挑战。
第一是视频内容的多样性,包含类型繁多,如:新闻、生活、娱乐、游戏等。多样化内容表示什么样的内容都可能出现,也就意味着算法处理需要针对多种类型视频内容。
第二是视频质量的参差不齐,千万量级的视频中,有些制作精良,但也有很多素材制作不佳。首先,针对UGC来说,用户的手机机型存在差异,且在视频制作的过程中,用户有时会加入一些非拍摄素材,制作技术也非专业级别,这些因素都会导致视频存在噪声、模糊、低分辨率、低帧率等问题。其次,即使PGC作品也会存在一些问题,如在视频二次创作过程中,制作水平的差异化造成视频质量参差不齐,并且对于老旧影片还存在划痕、严重胶片噪声等损伤。此外,视频还会经历多次转码压缩损伤,用户在拍摄时就会有第一次编码,之后如果用户再进行多次编辑,这就意味着多次损伤,当用户把视频上传时,平台也需要做转码工作——这样一个叠加操作过程下来,视频会经历多次转码压缩损伤。
面对这些挑战,如果用人眼或手动去判断视频质量并尝试做相应增强处理,这显然是不现实的。为此团队建立了智能的增强处理技术架构。此外,我们还要平衡成本和效果,考量如何获得高ROI。
如下是快手平台容易出现低画面质量视频的类型案例:包括高噪声低质量视频(夜间拍摄或光线不足等导致)、模糊低质量视频(拍摄失焦、设备原因或运动过快等因素)、块效应低质量视频(非专业多次编辑或多次转发等因素)等。
1.2 智能修复及增强算法:总框架
针对上述问题,我们提出了如上图所示的解决方案。这是一个智能解决方案总框架,分为如下两个部分。
第一步是快手自研视频质量检测的算法处理,主要检测两部分。一是检测视频中的场景,如半人像场景、风景视频、CG动画场景等,通过对场景进行分类,将会有相应不同的处理算法;二是检测视频多维度基础特征,首先我们对视频质量有总评分,然后同时还进行多个维度的细致评分,维度包括:如是否有Blocky;Blocky的程度怎么样;Noisy的程度怎么样;Blur的程度怎么样;Colorfulness的程度怎么样等。我们需要统计很多维度的信息,只有统计出来才可以确认这个视频采用什么算法。分析视频多维度基础特征,给到算法决策的部分,通过算法决策再去选择算法。整体检测环节提供了精准高效的视频特征分析,助力算法自主感知。
第二步是快手智能感知增强修复原子算法池中进行自动增强算法处理,包含超分、插帧、去噪、去模糊、区块效应、反交错、视频增稳、音频增强等。我们将根据第一步视频质量检测结果,智能自动化决策出独立或组合使用增强处理算子,可以对不同的画质内容进行针对性调优,能够大幅提升画质和美感。此外,视频增强还需要与视频编解码(包括快手自研K264、K265和KVC)处理链路结合,最终需要呈现给用户消费最佳视频效果。
举个例子,如一个视频包含大量复杂纹理的草地和人物,要求编码码率非常低。如果把所有纹理(草地和人物)都变清晰,那么在低码率的情况下,用户就会获得更好的视觉体验吗?答案是否定的。反而在低码率情况下,对有限高ROI区域如人物进行纹理增强,而对其他区域做不同编码前处理增强,这样才能做到最佳低码率编码后效果。这说明增强要和编解码强结合,用户才能获得更好的观感。
2、智能修复及增强算法
第一部分主要介绍了挑战和处理框架,接下来主要讲快手在修复和增强算法研发中实际做的事情。
2.0 技术架构图下图是技术架构图。首先进行视频检测分析,确认视频损伤的类型、程度,从而做相应调度、相应增强修复算法,最后做主客观评价。
快手自研视频增强修复算法分为三类:
1.视频修复:这里指视频质量本身需要修复,例如转码块效应很大,就要做转码修复,噪声很大就要做去噪等;
2.时空域清晰度增强:空域上包含超分辨率和去模糊算法,增强空域清晰度,以及时域上的视频插帧算法,对时域进行增强;
3.色彩和纹理增强:包括色彩增强,对比度增强,以及SDR视频通过算法能力生成HDR视频,为用户带来更高的视觉对比度体验,色域更宽,感受更好。
除视频增强外,快手还会做智能音频增强,如3D环绕声场。
2.1 视频修复:首创视频转码修复(创新)
接下来讲述几个典型创新算法的基本原理和效果。首先来看自研创新修复算法,即首创视频转码修复算法。
我们首先考虑一个典型实际应用例子,用户首先用手机拍下视频,这时候是用手机内置编码器芯片ASIC完成第一次编码,然后将视频上传至某平台,平台不会按照原视频直接下发,而是先做一次视频转码,转码后再下发至各个播放消费终端,在这个过程中就进行一次转码或编码。所以一个视频从拍摄到消费最少也要经过两次编码,而每经过一次编码,视频就损伤一次,这个例子应用还不包括对视频的多次编辑以及复杂操作。多次压缩会造成视频失真严重,压缩伪影更加明显。
业内算法和修复解决方案均针对单次视频压缩损伤进行修复,如将其直接用在多次视频压缩上效果会大打折扣。我们提出的解决方案是面向视频转码的时空联合辅助质量增强算法,其一大亮点是在模型网络中设置辅助监督,在对修复过程训练中不只是从头部到尾部,而是将中间第一次编码后的结果作成中间级label并进行辅助监督,相当于把网络中前半部分进行引导。辅助监督和全局监督的损失函数是有一定比例的,整体引导网络训练。然后,我们设计了时域可变形对齐模块(TDAM)、金字塔空域融合模块(PSFM)等卷积神经网络架构以进行纹理信息重建,达到显著修复并提升画质效果。
上图是我们算法的处理流程图,首先会做时域上的对齐(TDAM)、做空域上的融合(PSFM),及我们提出的特有的辅助监督注意力模块(ASAM),最后做全局监督重建模块(GSRM)。
这里讲述下如何做时空域上的对齐融合处理。首先,时域上针对每一帧做双向光流,随后将对齐之后的帧以及取得光流的信息做可变形卷积,得到时域上对齐后的特征,如左图。其次,空域上的信息融合过程,基本操作是UNet,但它与单纯UNet不同点是提出在下采样的时候用多种融合的方式去做,其中包含双线性下采样,包括平均池化、最大池化、步长为2等卷积下采样,如右图所示。实际多种下采样用消融实验也证实可以更大地拟合真实情况,证明算法有效性。
接下来看实验结果。首先从实验环境来看,为了贴近实际应用,我们在实验过程中第一遍编码用10Mbps模拟很多手机编码,接下来转码用1000kbps和500kbps,这与工业界下发应用更贴近码率,编码用H.265。接下来看结果,如图所示(最后一列是快手算法修复结果),可以看出,相比之前的所有经典算法,我们对篮球、斑马线、人、走路的修复都得到大幅度提升,主观上效果好很多,客观上更明显,平均PSNR增益为0.782dB。这项研发成果也被人工智能顶会AAAI 2022收录,分享给工业界同行。
下图显示快手算法在实际电影和动画片中对块效应的良好修复能力,修复出色的同时能够良好控制无色偏,主观效果感受显著提升。
2.2清晰度增强算法:自适应视频超分辨率
视频超分辩率已发展多年,网络设计思路相对稳定,大体上可分为这三步。首先做视频帧Alignment对齐,如t 1、t、t-1时间域上的相邻帧,包括是隐式 deformable卷积还是显式光流对齐,不同网络有不同设计;第二步做特征提取和特征融合,第三步基于ResBlock块等结构去做Reconstruction重建,从而生成清晰高分辨率图像。
那么,超分辨率在面向工业应用有什么问题?首先,传统的视频超分辨率算法在提升纹理清晰度的同时将原小分辨率视频中噪声放大;其次,画面往往会变得过度平滑,丢失小细节和纹理,而将大区域画面处理偏平,这样画面看起来会有些偏假;第三就是一个网络很难去做好所有场景的自适应。这些就是我们需要解决的几个挑战。
针对这些挑战,我们提出了对应的解决方案。首先,针对视频超分辨率把视频噪声放大的问题,我们做了视频超分辩率与编码损伤修复或去噪的融合算法,这种视频超分辨率是附带一些抗噪能力。大多数视频分辨率又小质量又差,所以既要提高分辨率,又要抗噪,就需要把这些融合在里面;第二,我们做了针对性突出画面纹理和边缘,主要在数据集上做的一些工作;第三,我们利用视频基础特征检测分析,对不同内容的视频进行相应的质量判断,用不同的超分辨率算子来解决,已对不同质量视频进行自适应。
这里举个例子表达basic idea,我们具备两者不同针对性超分算子,分别叫做SR-LQ(用于做低质量视频)和SR-HQ(用于做高质量视频)。
上图以SR-LQ为例,可以看到左图的分辨率低同时有很强的块效应。我们做超分辨率设计的核心是超分辩率能够做到抗锯齿,以及能够对块效应做到一定程度修复,避免传统超分辨率将分辨率变高的同时将块效应也变大的问题。
上图是以SR-HQ算法为例。这主要是针对影视剧,即视频质量不太差的情况下做分辨率的提升。优化重点在草地的纹理边缘,使之更加清楚明显。与上一个例子抗噪声、抗Blocky情况相比,这个需要细节越清晰越好。这里SR-HQ主要用在视频本身就很清晰的条件下。因此,对于超分辨率根据视频内容情况可以有很多不同的做法,从而达到最佳自适应效果。
2.2 清晰度增强算法:视频去模糊算法
视频模糊是视频低质的一种主要来源。模糊的原因有很多种,第一种是拍摄时出现失焦、抖动等情况;第二种是在编码压缩和转码或分发视频时的上下采样模糊,例如前面提到的多次编辑;第三种是画面主体运动模糊。
为应对以上模糊情况,我们首先考虑如何构建数据集。为此,我们在快手平台上获取了大量视频,并对低质成因进行分析并模拟大盘数据情况,根据退化比例、类型来设计数据集模拟真实,并在数据集上增加了噪声、块效应等低质因素来符合真实的业务场景。另外,合理的损失函数也很关键,在去模糊时,我们在loss中兼顾不同主客观损失函数。此外,我们还根据基础特征视频评价对算法增强力度进行自适应处理,并对处理完的视频进行质量评价回溯,从而进一步完善算法效果。以下图为例,我们为原视频去模糊,可以看到人脸和报纸上字的清晰度得到了明显提升,细节纹理更加丰富,色偏控制也很出色,画面清晰度显著提高。
此外快手清晰度增强算法还具备低质视频针对性算法版本,这个算法版本专门针对性算子进行处理,能够在去模糊处理同时具备抗低质效果。对于噪声/块效应进行去除修复并增强清晰度纹理,这样有效避免增强清晰度纹理的同时放大低质(噪声/块效应),从而更好地服务大量实际应用场景,这种情况在UGC视频中较为常见。
2.3 智能色彩增强:色彩增强算法
快手智能色彩增强算法能够根据视频内容质量自动化增强并避免传统色彩增强容易引起的bad case。传统色彩增强算法往往增强色彩同时也存在较多bad case。首先噪声容易被放大;其次在肤色方面,人对人脸肤色非常敏感,用传统算法对全图进行色彩增强容易失真。因此,我们推出的相应解决方案,引入了画面色彩特征。由于每个视频对色彩增强程度需求不同,不能统一设定数值全部增强,所以对不同的视频采取自适应的色彩增强方案;另外,我们还会对过饱和区域增加色彩增强限制,使噪声变小;最后,我们还引入了肤色保护机制对人脸肤色进行区域保护和区域异化处理。
色彩增强算法的创新特点流程如上图,与传统饱和度增强不同,我们首先会根据色彩分布生成K值mask进行自适应处理。其次,我们对于过饱和区域做抑制,可以降低噪声变强情况。然后在artifacts方面,我们也做了调整,在高光区域的时候进行了统计,随着饱和度的提升,噪声会变得很强。所以这里也体现出把一个算法做得很好,提升产品的稳定性,需要很多统计工作和细节工作。最后,我们对肤色和唇色也做了相应的保护,方案试了很多种包括肤色和颜色分割等实验,最终取得稳定色彩增强效果。
2.3 智能色彩增强:HDR生成算法(High Dynamic Range)
再来介绍一下HDR生成技术。2021年,团队开始支持HDR在快手上的拍摄、编辑、转码,再到消费侧客户端显示等工作,这其中包含很多算法。本次主要分享SDR转HDR算法。
为什么要做SDR转HDR这件事情呢?五六年前,很多手机机型就具备支持HDR显示,但HDR拍摄姗姗来迟,因此业内缺乏HDR视频内容。换句话说,HDR屏幕没有被充分利用。所以我们想做SDR转HDR,以提升视频播放消费体验。
这里算法细节比较多,主要介绍两个核心点。
第一个是将SDR亮度对比度拉起来变成HDR亮度对比度,这里强调的是要做自适应。因为一条单独的曲线不能适应各种各样SDR场景,以及各种各样的明暗区分布,所以我们做了一个基于统计的亮度自适应调整算法。比如基于帧级来说,我们会统计每一帧的亮区、暗区、中区分布占比,占比影响转换曲线等。转换曲线是自适应的,里面有很多拐点,拐点的亮度拉多高多低,曲线最后的形态是由统计的数值而生成的。所以我们是基于每一帧的不同具体画面生成不同的转换曲线,从而生成相应的HDR达到最好效果。
第二个核心点是饱和度的提升,从SDR到HDR会做色域的饱和度提升,这里会发现一个问题,直接提升饱和度然后生成HDR,会发现草地风景等颜色饱和多了层次感,但人像皮肤容易过曝,所以肤色是需要特殊处理区域。因此,我们对肤色分割后,对肤色部分使用柔和饱和度算法提升,然后其他区域使用普通饱和度提升,中间设置有过度区及羽化处理等,不能出现断层,这些bad case也要做到细节控制。
下图是我们SDR生成HDR算法的效果图,可以看出来无论是从对比度、亮度和色彩方面,均有较明显的画质效果提升;
2.4 音频增强:3D环绕声场
在音频增强方面,大多数流媒体平台只能获取双声道,且UGC音频存在声场狭窄、音质受损等问题。对此,我们的解决方案是利用双声道打造立体环绕声,针对左右两声道进行不同的滤波处理,获得声场展开效果,对于低频部分我们做了一定的增益和动态压缩,来获得更稳定的鼓声和bass以及部分人声的基频。
2.5 快手算法特有亮点:融合增强处理(All in One)
这里和大家分享视频修复增强算法的一个新亮点,即多种融合增强(All in One)。以低分辨率视频生成高分辨率HDR视频典型应用为例,分享为什么做融合增强的原因。传统做法第一步是先超分辨率SR生成4K,再用SDR转HDR算法变成HDR,正常情况下是两个算子串起来做。但这么做的问题是任何一个图像处理算法做完后,无论如何利用深度学习使新图质量更好,但原始信息会丢失是不可避免的。如果丢失了一些原始信息,在串联第二个算子过程中会缺少很多信息。比如第一步在做超分辨率时不可避免有细节丢失,第二步做HDR,即使SDR转HDR算法再优异也不可能还原。所以这就是融合的意义,融合会比两个封闭的串行算法要好。
分享下结果,与业界SOTA(JSInet)相比,快手融合增强方法PSNR提升了0.64dB左右,参数减少约70%,速度快约3倍,是做的比较快且好的网络。
上图是效果截图,以前的SOTA结果存在有显著bad case,而我们超分辨率后bad case没有了,而且颜色和纹理都变得很清晰,体现出4K HDR该有的效果。
典型案例:去噪 超分 色彩(All in One)
上图是一个真实案例,这是一个老港片。我们用融合算法对影片进行处理,原片中有很强的噪声,在处理后噪声少了很多,面部和背景都变得更加清晰,色彩也有所提升。
2.6 快手如何利用上述增强服务
针对快手平台的每日千万级海量视频,增强修复算法是如何利用的?接下来主要介绍下基本原理和需要注意策略basic idea。
首先是算子的触发逻辑,一共有三种。第一种触发逻辑是根据技术特征、模糊程度、Blocky程度等,它会有分值,然后由分值来决定触发逻辑;第二是根据热度视频触发,对平台上全部视频应用是没有意义的,需要基于Fan Count还是View Count 这些细节去设计;第三是事件触发针对具体事件case。所以触发策略是和具体的业务形态有关系,然后根据业务去做具体的触发方式。
其次要介绍的是设计处理优先级。增强触发时会有不同的优先级,因为视频上传到平台后,会有波峰波谷。但是GPU等计算资源一定是固定的,当一定时间内触发量过大,这时处理不完怎么办?肯定不能随机丢掉,而是做优先级方式以保证重要视频被处理。
最后就是多个算子在调用过程中会存在交叠处理的情况。比如在做算法分析时发现视频的分辨率又小、块效应又重,可能会认为既要做DeArt又要做超分辨率,这时算子在交叠的时候该如何解决?我们的解决方案有两种,第一种处理算子交叠的方案是在算子设计的过程中,其实是有一定抗交叠能力的,举个例子,在超分辨率过程中,对于一些简单的伪影噪声等视频也可以用超分辩率,调用不同的超分辩率算子。第二种方案,在解决交叠态视频的时候,我们收集了很多离线视频进行分析对比,我们测量出什么样的分值该做什么样的视频收益最大,然后在上线策略上完成。
3、质臻影音的成功落地方案
最后介绍下,快手智能增强修复方案整合产品「质臻影音」的成功落地方案。2022年1月,快手质臻影音正式上线,包含高分辨率、高帧率、HDR、3D环绕声场这四大效果,能够排列组合刚刚提到的算子,定制化对视频进行提升,包含如下两方面:低质变优质,以及优质变极致。例如对老电影、破损影片进行去划痕、降噪、去模糊等“点对点”修复,主要针对低质量视频;对高质量视频,可以提升到极致效果,使用去模糊、4K超分辨率技术、HDR等达到极致的体验效果。
此次分享的相关技术后续将不仅在快手平台得到更广泛的应用,也将在快手toB品牌StreamLake业务中。欢迎大家来咨询StreamLake智能视频增强修复算法,以及直播、编解码、音频处理等多种业务。
以上就是我本次分享的全部内容,谢谢大家!
,