前言
2021年5月,字节跳动智能创作团队精心打磨的移动端实时视频超分技术上线,并在抖音、头条、西瓜等多个业务场景大规模落地。该超分技术在性能和功耗维度取得了巨大突破,通过极致的高性能优化和算法改良设计,跨越超分算法极高的算力要求和移动端算力瓶颈之间的鸿沟,是迄今为止业内唯一实现 720p、1080p 35fps视频在移动端上实时低功耗运行的方案。
端上实时超分的落地,使得用户在移动端的播放体验获得了大幅提升,也为字节系多个业务取得了用户活跃天数、留存、使用时长、商业化指标的显著收益。
自研移动端超分与业界超分端上方案性能数据对比
高清画质解决方案
在 2K 屏幕分辨率已是主流的今天,用户对于高清观看的需求也变得越来越强烈。然而视频质量受到拍摄设备、传输带宽、下发策略等多种因素的影响,用户所观看的视频难免会有分辨率低、质量较差等问题,这势必会影响观看的清晰度体验。超分技术旨在从低分辨率输入中恢复出视觉质量更佳的高分辨率输出,可以有效地解决由于拍摄设备、网络传输等因素导致的视频质量不佳的问题,从而满足播放端用户对于极致高清画质的需求。
低分辨率输入原图分别使用 Bicubic 和 EDVR [1](深度学习)进行放大(Wang et al., 2019)
然而超分问题本身是一类经典的不适定问题,即不存在唯一确定解:由于从高分辨率到低分辨率的降采样过程存在无数种可能性,从低分辨率逆向映射到高分辨率的解空间往往很大,搜索十分困难。为了解决这类不适定问题,业界常采用的解决方案有:
传统机器学习方案
通过图像训练集,提取低分辨率图像块和对应的高分辨率图像块,基于人工设计的特征和匹配的图像块产生一个学习模型,获取先验信息,后续利用这个模型重建出高分辨率图像的细节。
深度学习方案
由于传统机器学习的匹配过程依赖于人工设计的特征,其在高维空间和大尺度因子上的表征能力较差。借鉴于深度学习在其他视觉领域的成功,大家开始尝试利用深度学习强大的特征提取及拟合能力来解决超分问题,并预期获得更准确的超分结果。
端云协同方案
对用户上传的视频逐个进行画质分析,根据分析结果使用相应的云侧算法进行增强,得到高质量的视频源。然后使用不同的编码参数进行抽样,模拟下发后的画质,使用端侧超分进行画质恢复,根据恢复程度智能决定最优编码参数,从而实现画质与码率的最佳平衡。
端上实时超分挑战与优化
移动端实时超分的挑战
作为一种稠密输出型的图像算法,超分算法对运算资源有着较大的需求,因此业界以及学术界的探索往往集中在服务端。与此同时,手机端作为字节系产品矩阵最重要承载平台,负责着大量的 PGC 和 UGC 视频内容的播放,一旦超分技术成功落地在移动端平台上,便能给数亿用户带来更加高清的画质播放体验。
尽管端上实时超分落地带来的画质和码率收益十分可观,但受限于移动端算力、算法功耗、多机型兼容性等问题,在移动端上部署实时超分技术面临着巨大挑战:
挑战一:移动端算力局促
用户在观看视频时,对视频的流畅度、清晰度很敏感。对于高帧率、高分辨率的视频,如果算法不能保证实时性,用户体验将会大打折扣。然而移动端有限的算力资源又使得算法实时性成为一个不容忽视的难点。
挑战二:端上算法功耗要求严格
以往的端上视频超分算法堪称“耗电大户”,特别针对 540p 以上分辨率的输入,图像尺寸的增加带来运算复杂度成倍扩大,容易引起手机发热。因此使用一个低功耗的实时超分算法才能最大限度地提升用户体验。
挑战三:机型兼容性要求较高
不同手机运行着不同的操作系统,且涵盖高中低各档次机型,如何设计业务策略以实现最大范围机型覆盖也是端上实时超分的一个难点。
为了解决上述难题,字节跳动技术团队从算法和工程方面进行了多维度技术攻坚,克服了超分算法极高的功耗性能要求和移动端有限算力之间的鸿沟,在高中低全系移动平台上首次实现了针对手机端 720p/1080p 35fps 以内视频的超低功耗超分算法。
算法侧优化方案
思路一:传统机器学习优化方案
提取成对训练集里对应的低分辨率图像块和高分辨率图像块,根据低分辨率图像块里的内容和几何特征对其进行分类,最后利用机器学习算法学习低分辨率图像块和高分辨率图像块之间的关系,得出重建矩阵。为了做到更多的机型覆盖,在算法设计阶段,精确统计各个子模块的计算复杂度,在保证效果前提下,不断调整分类策略,优化学习算法的鲁棒性,最终支持端上实时低功耗运行 720p/1080p 超分。
思路二:深度学习优化方案
由于学术界经典网络模型参数量往往比较大,需要的算力动辄数百 GFlops,远超目前移动侧高端设备极限算力几十倍甚至百倍之多。下面是一个经典超分模型情况:
Model | Input Size | GFlops | Parameters |
---|---|---|---|
SRGAN [2] | 360x480 | 446 | 1554490 |
如此复杂的模型需要消耗大量的计算和内存,即使在目前服务器级别的 GPU 上也无法做到实时处理,对移动端更是一个很大的挑战。为了得到一个可在移动设备上实时低功耗运行的模型,团队采用了如下几种优化方法:
模型结构优化:人工设计网络架构通常需要繁琐的实验过程,且容易出错。为了在网络模型设计阶段尽量选择能效高的算子,我们采用广泛应用的神经结构搜索的方法(Neural Architecture Search, NAS)方式对网络模型进行优化。
模型压缩技术:我们采用剪枝,蒸馏等模型压缩技术在优化后的模型架构上进一步减少模型中冗余的权重,去掉对模型性能贡献小的分支,达到减小模型复杂度的目的。同时采用量化技术将权重以低码率存储,从而减小模型体积,加速计算。
硬件加速技术:在保证效果显著的前提下,模型压缩所带来的加速比,是有一定上限的。因此我们进一步采用速度更快、能效更好的硬件(如华为的 NPU,高通的 DSP,MTK 的 APU 等)对网络推理进行加速。
与硬件厂商进行深度合作:通过与厂商合作,实现算法的深度定制性优化,提升模型在性能与功耗方面的表现。
工程侧优化方案
在移动设备算力、内存总线带宽都有限的情况下,既要满足高分辨率超分算法实时处理的要求,又不能增加太多耗电,对工程化部署要求非常高。我们在相关方向做了很多探索和技术演进,从最初的 CPU 汇编、多线程优化,到结合视频解码器加速的异构方案,再到 GPU、DSP、NPU 多设备的异构方案,深度结合业务场景实现算法在渲染链路与多设备内存零拷贝打通,完成了算法的高性能落地。
算法评测
针对自研的移动端实时超分,我们从功能性和主观画质两个维度进行了全面评测:
功能性评测
作为业界独家 720p 移动端实时超分算法,字节跳动智能创作团队对端上实时超分技术做了深入的优化,在性能、效果、体验上,都取得了一定行业优势:
鲁棒性强
由于自研算法针对人像、自然、建筑、游戏、动漫等等众多场景进行了效果适配,使得算法能够在绝大多数场景中为用户带来画质提升。
实时性强且功耗低
经过算法侧和工程侧的优化,自研算法支持移动端 720p 30fps 视频实时超分处理(在 ipad 大屏设备上最大支持 1080p 超分),且功耗增量小于 50mA。
机型覆盖率高
高性能端上超分方案针对不同机型性能进行了深入探索,通过不同的算法模型以及不同倍率的处理方案,覆盖移动端 50%以上机型,为不同手机型号的用户都带来画质提升。
主观画质评测
为了确保上线效果的稳定,在上线前,字节内部专业画质评测实验室预先对算法效果进行了主观测评。实验评测采用 JND 得分,来对超分前后的主观画质感受进行测试。
JND 评分用于衡量评估视频(此处即超分后视频)与源视频的画质差异,其得分范围的一般性评价为:
[-3,-1.5],几乎所有测试者都可以感知测试图像的缺陷
[-1.5,-1],大众可以明显感知缺陷
[-1,-0.4],大众可以感知缺陷
[-0.4,0.4],无明显差异,大众无法感知
[0.4,1],有正向感知
[1,1.5],大众有明显的正向感知
[1.5,3],几乎所有测试者都可以有正向感知
JND 评分与实际画质的示例
最终的实验组织了 100 位用户在移动端对 10 组视频源和超分结果的质量高低进行投票,并将投票结果映射为 JND 得分。如下图所示,经过每一组超分后的视频相比原始视频 JND 得分都大于 0.4, 所有超分视频整体 JND 得分为 0.69,正向明显,意味着绝大多数用户都可以感知到端上超分带来的画质提升。
主观评测视频的整体 JND 得分
单个视频 JND 得分
算法收益
作为业界首家支持端上 720p 实时超分算法,目前端上实时超分方案已在抖音、头条、西瓜等多个业务的视频消费场景落地,实现了端上超分在短视频业务安卓、iPhone 高中低端设备全面落地的重要业界突破。并带来众多实际效果:
提升播放清晰度:利用高端机屏幕的高分辨率优势,低清视频高清播放,高清视频提供超高清画质,提升用户视频消费体验。
降低分发带宽:通过服务端降低转码分发视频分辨率,结合客户端超分处理呈现高分辨率效果,降低高清播放门槛,提升流畅度,减轻用户网络压力。
这些实际效果同时也在用户活跃天数,留存,使用时长,商业收入等重要业务指标上取得显著收益:
在抖音短视频,今日头条,西瓜视频等 APP 中,取得用户活跃天数,留存,使用时长等业务指标的显著收益;
在商业化场景中,带来广告主价值收益,取得了每年数亿的商业指标收益;
基于端上超分算法,在抖音、今日头条完成 CDN 带宽优化,显著降低了下发视频带宽,年节约亿级带宽成本。
未来展望
未来我们将持续探索超分价值场景,结合字节视频云团队的高效编码技术,以及生态合作伙伴在硬件方面的能力,实现端云协同的极致带宽优化和高清播放方案:
极致高清体验
通过端云结合的协同优化打造极致的画质体验。
极致低码率
通过 case-by-case 的智能编码设置,实现在高画质情况下极致的码率节省。
低功耗
深度结合我们的工程优化能力和厂商的硬件能力来降低算法功耗,避免发热同时提升续航能力。
引用文献
[1] Wang X, Chan K C K, Yu K, et al. Edvr: Video restoration with enhanced deformable convolutional networks[C]//Proceedings of the IEEE/CVF Conference on Computer Vision and Pattern Recognition Workshops. 2019.
[2] Ledig C, Theis L, Huszár F, et al. Photo-realistic single image super-resolution using a generative adversarial network[C]//Proceedings of the IEEE conference on computer vision and pattern recognition. 2017.
加入我们
字节跳动智能创作团队
智能创作团队是字节跳动音视频创新技术和业务中台,覆盖了计算机视觉、图形学、语音、拍摄编辑、特效、客户端、服务端工程等技术领域,在部门内部实现了前沿算法-工程系统-产品全链路的闭环,旨在以多种形式向公司内部各业务线以及外部合作客户提供业界最前沿的内容理解、内容创作、互动体验与消费的能力和行业解决方案。
目前,智能创作团队已通过字节跳动旗下的火山引擎向企业开放技术能力和服务。
抖音多媒体评测实验室
抖音多媒体评测实验室是字节多媒体画质和音质质量保障中台,通过专业的评测人员,实验室设备和业界领先的评测方案,服务于字节内部众多产品,包括抖音,头条,剪映,西瓜等等,在端到端的全链路画质上通过手机厂商合作,视频编解码,图像算法增强,工程优化等方向进行画质测评,全面提升用户视听质量体验。团队发展迅速,年轻富有朝气,注重技术氛围建设,积极参与国内外各顶尖行业技术会议,输出高质量技术专利和相关论文,工作 Base 地有北京、深圳、杭州、上海等多地可选。
欢迎通过下方链接或二维码进行简历投递,加入我们,让我们一起做图像视频算法的领军者!
图像算法研发方向:北京/上海/杭州/深圳职位开放, https://job.toutiao.com/s/8evt3VN
高性能计算架构:北京/上海/杭州/深圳职位开放,https://job.toutiao.com/s/8eckuNQ
Camera 算法研发:北京/上海/杭州/深圳职位开放,https://job.toutiao.com/s/8e3R6aJ
图像测试工程师:北京/上海/杭州/深圳职位开放,https://job.toutiao.com/s/8ecgXdm
效果 demo:
机器学习方案(左侧是 bicubic 插值,右侧是 ours,中间一列上方取自左侧,下方取自右侧)
深度学习方案(左侧是 bicubic 插值,右侧是 ours,中间一列上方取自左侧,下方取自右侧)