当前位置: 首页 > 科技观察

智能插帧,打造丝滑视频体验

时间:2023-03-16 17:51:51 科技观察

暑假期间,小跳出去旅游,一路上用手机记录了很多美景。回家的路上,小跳打开手机,想慢悠悠地细细品味刚刚拍下的视频,却发现视频被强烈的凝固感“盖过了”。失望的小跳想起了前段时间在抖音看到的简影APP丝滑的慢动作教程,抱着试一试的态度打开了简影。几经操作,视频发生了质的变化,像是回到了拍摄的那一刻,瞬间没有录制的片段全部还原,再也没有了“一键”卡顿的感觉。是什么技术将视频还原到当下,让卡顿的视频如此丝滑?本文对字节跳动智能创作团队研发的视频插帧技术进行深度剖析,为大家寻找丝滑视频的秘诀。视频帧率(单位:fps)是指每秒播放的帧数。在一定范围内,帧率越高,视频观感越流畅。早期电影的帧率在20到60fps之间,现代电视广泛使用的帧率标准是25fps和30fps。随着技术的发展,电视、手机等播放设备可以支持更高帧率的视频播放。今天的用户不再满足于过时的20-30fps视频标准。由于网络传输、拍摄丢帧、后期剪辑等原因,网上什至有很多视频实际帧率低于15fps。为了消除低帧率视频的卡顿感,需要使用插帧技术来提高视频的帧率,从而为观众带来丝般流畅的播放体验。插帧算法计算原始视频的帧间运动关系,插入符合两帧运动关系的中间帧,从而提高视频的帧率。在两帧之间插入新的中间帧字节跳动智能创作团队打造了多端视频智能插帧解决方案,已在抖音、剪辑、西瓜等多个业务场景实现。该方案可以提高低帧率?的帧率,改善?的观看体验;同时,它还为视频创作者提供了高端的视频剪辑工具,可以为变速视频补帧,生成丝般柔滑的慢动作效果。此外还衍生出多种特效玩法,在投稿、新人、留存、DAU等多项指标上取得了显着收益。视频插帧行业解决方案视频帧率低的原因有很多。在视频创作到消费的环节上,拍摄、剪辑、编解码、分发策略等因素都可能影响视频帧率。因此,插帧技术在各个环节都有应用价值。需要构建多端视频插帧方案,才能将帧率优化到极致。针对不同的使用场景和不同的后端设备,算法方案也不同。目前业界普遍采用的方案是:帧融合或重复帧,将两帧的融合结果或重复帧直接插入到原视频中作为新加入的中间帧。这种方法计算简单,但会造成拖尾和卡顿,对视频观看体验没有提升。它通常可以作为特殊场景和低端设备的自下而上的解决方案。该方法也被集成在AdobePremiere、FinalCutPro等专业剪辑软件中,作为帧插值的可选方法。传统的MEMC解决方案MEMC(MotionEstimation,MotionCompensation)是一种运动补偿算法。这类算法会对相邻的两帧进行运动估计,补偿原视频中不存在的画面,达到提高视频帧率的目的。MEMC生成的中间帧符合原始视频的平滑运动关系,从而使视频更加流畅。但是,对于运动复杂的场景,在有限的计算能力下很难得到准确的结果。AdobePremiere和FinalCutPro中的光流帧插值(在Pr中也称为“时间插值”)中使用了这种方法。运动补偿表明深度学习方案基于深度学习方案。通常,将原始视频的相邻两帧作为神经网络的输入,结合光流神经网络、遮挡估计等技术预测两帧之间的中间帧。深度学习方法可以提取图像语义信息,因此在遮挡估计等方面往往表现更好。但深度学习方法通??常计算量大,难以在移动设备上应用。目前基于深度学习的光流算法比较成熟,可以计算出两帧之间的密集光流。利用光流信息,可以将前后两帧图像Warp到中间时刻,合成中间帧。NvidiaSuperSlomo提供深度学习插帧算法,运行在NvidiaGPU上,但对显卡性能要求较高。图片来源NvidiaSuperSlomo论文自研插帧算法突破优化多端插帧算法能力矩阵为服务抖音、西瓜、剪报、火山引擎等不同业务场景需求,并优化整个链路的帧率,我们构建了一套视频插帧多端解决方案。视频插帧多端方案服务器具备GPU算力,适合采用深度学习方案,获得更流畅的插帧效果。自主研发的服务端插帧算法,为抖音业务提供云帧率增强转码能力,提升低帧率短视频的观看体验。未来将以云服务的形式逐步向更多业务线和ToB客户开放。如果移动端可以直接在移动设备上使用插帧算法,那么算法能力可以触达更多的视频创作者,视频制作过程中可以提高视频的流畅度。针对移动端的使用场景,我们开发了基于MEMC的插帧算法,并对MEMC算法存在的问题进行了详细的优化。PC端专业视频创作者经常使用桌面端专业剪辑软件进行视频创作。自主研发的视频插帧方案,也为PC端切屏专业版提供了插帧能力。对于搭载独立显卡的PC设备,可以采用深度学习方案,保证更好的插帧效果;其他PC设备可以复用移动端的核心算法,保证算法的性能。优化方案虽然插帧技术在业界有着悠久的发展历史和成熟的应用案例,但在性能和效果方面仍然面临着巨大的挑战。在性能方面,服务器端GPU算力昂贵,而移动端算力局促,模型分布复杂。在效果上,插帧效果依赖于准确的运动估计。如果视频中存在大范围运动、前后遮挡等复杂运动场景,生成的中间帧可能会产生模糊、拖尾、块状碎片等现象。针对这些困难,字节跳动智造技术团队从算法和工程的多个维度对多端插帧算法进行了优化。神经网络模型压缩我们使用模型修剪技术来减少神经网络中的冗余权重。并且通过特征共享,减少了双向光流的计算量。此外,根据光流的平滑性,我们采用在小分辨率下推断光流并在原始分辨率下合成中间帧的策略,以减少复杂网络的计算量。帧插值网络结构展示了内容自适应帧插值的可行性分析。并非所有视频内容都适合帧插值。对于相邻帧有剧烈变化的场景(如转场、剧烈运动),帧插值算法无法生成帧插值算法。合理的结果,甚至可能会引入严重的伪影。因此,我们判断对视频内容插帧的可行性,根据图像特征、运动范围等信息,自适应地决定是否对当前帧进行插帧。更高效的MEMC策略块匹配是一种基于搜索的运动估计算法,需要在前后帧的某个区域搜索最佳匹配的图像块。对于运动复杂的视频,这种方法往往需要很大的搜索空间来搜索最优的运动向量。这给移动应用程序带来了算法瓶颈。我们开发了一种由光流引导的块搜索策略,以解决块匹配的性能和有效性问题。自主开发的方法首先计算两个相邻帧之间的多尺度快速光流。图像金字塔多尺度策略可以使算法对大运动场景具有更强的鲁棒性。在得到初步的光流信息后,可以以光流为导向,在金字塔的最大尺度上进行进一步的块搜索。此时,块搜索只能在很小的搜索空间内快速搜索出最优运动矢量。基于多尺度金字塔的快速光流在金字塔的最大尺度上进行分块搜索。无论是多尺度快速光流还是光流引导的块搜索,整个计算过程都可以并行计算。这使算法能够在移动设备上高效运行。终端异构计算采用终端CPU+GPU的计算方式,将计算密集型任务分配给GPU,使用opencl或metal实现算子,根据平台进行特定的性能调优;而计算稀疏的任务则是在CPU上进行计算,通过多线程等操作来进行性能优化。通过异构计算,在端可以实现5倍左右的加速比,性能满足落地需求。端上算法如评分策略抖音、裁剪等APP覆盖海量用户,用户模型多样。为了保证算法的机型覆盖,让不同机型的用户都能获得最佳体验,我们在设备上采用了分级算法的策略。根据用户模型的计算能力,终端上的插帧算法分为高、中、低三个档位。高档位优先保证效果,适用于高端车型;低挡优先考虑性能,适用于低端车型。智能补帧及其衍生应用裁剪变速-智能补帧我们的插帧能力已经在裁剪“变速”面板上线了。视频素材放慢后,可以勾选“智能补帧”选项,让慢动作更流畅。夹影智能帧补入口自动变速创意玩法夹影在抖音玩法栏目推出了“丝滑变速”效果,可以一键生成卡点变速效果。这种玩法的“丝滑”效果也离不开插帧能力的支持。海外版CapCut也有同样的能力,上线两周就火了。除了让慢动作更流畅,帧率的提升也是插帧算法的一大应用。西瓜视频“怎么玩库”面板提供了帧率提升的体验入口,可以将用户上传的低帧率视频升级为高帧率视频,提高视频流畅度。王家卫电影风格《王家卫电影风格》特效是插帧算法的衍生,剪辑相机和特效已经上线。这种风格通常是在拍摄阶段由于相机的快门速度较慢而产生的“拖影”效果。通过插帧算法的运动估计和补帧能力,在视频后期,可以一键生成符合视频场景运动关系的“拖尾”效果。辅助其他视频算法节省算力一些令人惊叹的GAN特效算法往往很复杂。在视频特效场景中,神经网络推理需要逐帧进行,难以达到实时性。但在插帧算法性能优于GAN特效方法的前提下,可以采用“特效+补帧”的策略来加速视频处理。高度复杂的GAN特效只需要在一定间隔内处理较少的帧,其余的中间帧使用帧插值算法生成。插帧辅助其他算法减少耗时未来展望除了视频剪辑和特效玩法,未来我们还将继续探索插帧技术在高清低码视频场景中的应用价值。帧插入技术不仅可以提高视频内容的质量,还可以起到节省带宽和低延迟传输的作用。低功耗实时视频插帧结合厂商能力,从算法和工程上优化插帧性能。服务器只需要下发帧率较低的低码率视频,采用高性能、低功耗的插帧算法在端进行实时插帧,还原高帧率视频。既保证了用户体验,又节省了带宽成本。结合编解码智能补帧H.264编码器内部会进行运动估计,通过对运动补偿残差进行编码进行帧间编码。新一代H.266编码器在运动估计精度和运动补偿精度方面进一步优化。将编解码器与帧插值相结合,可以通过帧插值算法对运动估计信息进行复用,帧插值算法可以进一步优化帧间编码的压缩率。参考文献[1]蒋怀祖,等.“Superslomo:用于视频插值的多个中间帧的高质量估计。”IEEE计算机视觉和模式识别会议论文集。2018.[2]尼克劳斯S,刘F.用于视频帧插值的上下文感知合成[C]//IEEE计算机视觉和模式识别会议论文集。2018:1701-1710.[3]ChoiBD、HanJW、KimCS等。使用双边运动估计和自适应重叠块运动补偿的运动补偿帧插值[J]。IEEETransactionsonCircuitsandSystemsforVideoTechnology,2007,17(4):407-416。