编者按: 相信大家手机里或者生活中都有大量字节产品线的应用,包括短视频、直播、社交等一系列的音视频应用场景,包括大量的音视频应用产品。今天LiveVideoStackCon 2022 音视频技术大会 上海站邀请到了火山引擎智能互动特效解决方案总监范青老师,为我们分享在字节内部业务线和外部企业服务线里面,视频云产品和视觉特效算法融合的最佳实践以及在业务的落地环节中,字节在这些方面发现的一些创新点以及技术积累。
文/范青
整理/LiveVideoStack
大家下午好,我是范青,我来自火山引擎的智能美化特效团队,今天由我来代表我们组来给大家进行分享。
今天我分享的主题是《端云协同创新优化音视频场景用户体验》。表面看上去音视频场景、用户体验这件事,与我们这个做特效的团队不是那么沾边。那么为什么会由我来进行这个分享呢?接下来给大家分享一个我亲身经历。
1、分享亲身经历,引入话题
我们字节有To B企业服务的品牌,有时会把我们自己觉得用得还不错的各种组件提供给我们的企业客户。企业客户比较多的比如与音视频相关的,像短视频、直播行业之类的、拍照工具等,经常有客户和我说:“是不是自己使用了你们的美颜功能之后,就可以跟和抖音一样,有非常好的拍摄体验,从而成为下一个抖音呢?”
我对这个问题思考了很长时间,最开始的时候大家可能都会觉得买个美颜就成抖音了这个想法有点奇怪。后来我仔细思考了客户的想法,他认为自己既然使用了服务,那自己是不是整个端到端的体验就应该和我们对齐。
之后我发现,为什么大家对美颜寄予了很高期望,是因为大家在进行抖音拍摄或者直播浏览的时候,发现画质清晰度包括色彩、亮度等都很不错。但是大家用的都是同样的音视频技术,为什么它的色彩会更好、画质会更清晰?为什么加入这些之后,人就变得更精神了?
有不了解的同学或许会认为这个东西是美颜做的。抖音美颜很强,抖音加了美颜之后,它的画质就变好了。因此他们会把这件事归结于只要用了抖音的美颜,就可以和抖音拍摄的一样好。
所以为了解决这个问题,我深入内部的业务线去讨论我们到底在这个端到端的过程中做了哪些事情,使画质、特效整个叠加起来有了一个更好的观看和拍摄体验。讲完这些,大家应该就能明白为什么由我来给大家分享这个用户体验。
2、画质测评报告
我们从一份画质的测评报告开始阐述。画质测评报告是我们内部的产品——剪映,和竞品做对比。大家知道我们有非常多的音视频产品,和相机相关的,和视频相关的。例如直播工具有抖音直播、短视频工具有抖音短视频、拍摄工具有轻颜、图片编辑工具有醒图、视频编辑工具有剪映等。所有以画面为介质的产品,从生产到播放到消费整个流程,我们都有不同的模块和不同的产品。
作为一个视频产品,我们编辑页和拍摄页有一个五边形的维度,包括画质、亮度、色彩等都进行了一些评估。之后以结果来主导我们每一次产品的优化和迭代,包括拍摄的优化迭代和编辑的优化迭代。
该竞品和剪映相比,在iOS端导出视频和Android端导出视频,在五角边图上有一个不同的得分,可以看到蓝色的部分是剪映的得分,橙色的部分是某个竞品的得分。推理得出两个结论:一是iOS端视频软件M伪项表现不如剪映,存在色块和过锐的问题;二是Android端剪映支持2K/4K的导出,但是视频软件M不支持导致清晰度明显不如剪映。
接下来是我们自己内部对于整个图像的一个看法,从这个图像的领域来看,我们的五边图由五部分组成:分辨率、位深、亮度、帧率和色域,这五个概念导致人眼在观看视频,无论是拍摄的时候,还是在看成片的时候,有不一样的感官体验。接来下我们分别从各个维度来细说。
第一个是分辨率,代表图像细节的精细程度。分辨率指的是图像中的像素数量,在特定屏幕的尺寸下,分辨率越高,像素越多,显示细节更精细。例如手机大多都支持看4K视频,但是之前手机像素如果不支持高分辨率,即使有4K/8Ks视频,也无法观看。因此清晰度是人眼第一个感官,视频的好坏程度与清晰度有着很大的关系。
第二个是位深,指的是色彩渐变的精细程度,位深的程度越大,可显示的颜色越多,渐变会更平滑自然。人眼在观察这个世界的时候,对每一个颜色的渐变非常敏锐。当我们觉得看到颜色觉得很舒服的时候,就是因为这个颜色渐变色很自然的。当我们看到一些照相机拍下来的图像,有时候会觉得配色很奇怪,就是因为它的渐变色不充足。有个笑话说五彩斑斓的黑实际上就是即使只有一种颜色,它也有很多的表达形式。当我们在看天边的彩霞的时候,会发现自己看到的和拍出来的差别很大,是因为手机的显示的像素包括位深和人眼感受到的是不一样的。因此,如果软件支持更高的位深,那么它显示的图片会更柔和,渐变更自然。
第三个是帧速率,也就是运动的平滑速度。比如直播,如果帧速率低于15FPS以下,视频就明显有卡顿感。当达到了24帧率及以上时,视频会相对流畅。例如电视节目使用30FPS,高帧电影使用60FPS,就会让我们感觉动作和动作之间的衔接很自然的。帧率越小,动作越卡顿。
第四个是色域,是色彩的生动程度,指的是可以显色的所有颜色的范围。范围越广,视频越可以还原人眼感知的真实的RGB值的范围,相当于我们人眼能够感受到的颜色的种类。在这种情况下,如果我们看到的颜色种类较少,图像也会不自然。
最后一个是亮度,指的是图像照明强度的范围。比如HDR用来提升亮度,使人拥有更好的一个感官,更接近裸眼的感知。
我们的产品为了提升真正的用户的体验,就是在这个五个方向不断努力。包括自适应锐化、HDR、SDR、防抖、降噪等都是为了去提升人眼的感官,去还原人眼看到的更真实自然的触感。
刚才有提到测试报告,那测试报告是如何产生的呢?首先,我们有主观测评和客观测评。主观评测流程分为专家测评、专业小组测评、用户众测、上线AB 实验。也可以由我们的众测平台去进行任务分发。上线AB实验之后,会观察效果,如果正向显著,我们就会逐步放量;如果正向不显著,我们会重新打磨,再考虑是否上线,最终开放全量。
整个流程得益于内部数据平台,几乎我们所有的内部平台都会和数据AB test平台打通。例如做特效的平台和AB test平台就有非常大的关系,即使是一个小小的美颜上线之前也会做一个全量AB test。比如说我们会先小部分测试某区域女性用户对这个事情的一个感官,然后再去测用户属性,最后将对照组和实验组进行感官。所以字节会在每一个环节里,即使是很小的功能都会进行AB test。
主观方向的专家有来自于这个手机厂商,硬件厂商,或是视频类公司;专业测评小组会有考核体系,比如GSB(good、same、bad)或别的辅助测评工具色卡、刻度尺等帮助对颜色不太敏感的部分人群,去对比是否还原了真实色调。用户众测以及主观测评方面,我们拥有一个200多平米的大实验室,有光照和测量的仪器,去帮助用户体验数码图片。
在客观方向,我们有24色卡分析、防抖客观工具、常用工具集。提升评测效率方面有灯源自动控制,拍摄文件自动重命名,主观效果客观化的一些模型打分。
因此在对待画质的每一方面,我们都非常认真的去对待,希望用户在最后使用时能对这个产品有更好的认同度。
3、画质优化的价值
那么我们在画质方面做的努力对用户有什么真实收益呢?这也是我们AB test中的一个小实验,从清晰度这个小的维度出发。实验组去掉了1080P和720P的视频放出,对照组保留1080P和720P,对比发现了清晰度更低的一组用户播放时长损失了0.47%。0.47%表面看起来不高,但实际上关系着后续的播放、留存、商业化等诸多因素,到最后可能关系到几个亿的小生意。在这样的一个AB test下,它被标注是一个红圈,是一个显著的表达。在这个变量下,造成了很大的用户影响。
4、手机端全流程图像体验升级
刚才提到很多“好”是什么,那么我们怎么才能做到“好”,在内部的流程会略显复杂。这件事就是通过端云共同完成的,只有云不行,只有端也不行,那云和端分别有什么作用呢?现在有生产端、服务端、消费端,在不同的业务里分别代表不同的方面。比如说在直播业务里生产端就代表着直播的软件,例如抖音或直播助手等。服务端指的是云上的这些服务器比如转码、分发。
在这样的不同的端我们有不同的模块组件做不同的工作。最一开始的东西叫做VE_SDK,它有什么用呢?包括Camera采集、编解解码参数和算法增强。例如一个视频,最重要就是在采集时就要采集优良的视频,否则后期再如何加工,都属于二次加工。那在采集时,采集参数会影响画质的质量。玩摄影的小伙伴可能会了解到ISO和白平衡这两个概念,它们在使用接口时就已经可以配置了。之前有一个客户认为抖音通过加入一个高级算法使画面更加鲜艳,其实就是采集视频时,调了一点亮度和白平衡,不是AI算法。
VE_SDK这个模块的camera采集,抖音在这里做了一些工作。大家都知道苹果手机品控稳定,但是安卓产品的摄像头比较多样、很难统一。那么做这个大量的适配工作有没有意义呢?是有意义的,每个摄像头如果你都给他去设定不同的参数时,大概率是会对这个画面是更好的。那做这样的一件事情,其实是很耗费人力的,需要有一个系统化的机制去控制整个流程。所以适配工作非常有用,虽然有点繁琐。我知道国内的安卓厂商,现在心态越来越开放,例如OPPO就开放了一些底层的相机接口,将防抖、HDR等供给了第三方开发者。我们会发现高级相机拍出来的画质,以及防抖效果非常好。可能这一类的厂商近两年会以一个更开放的心态,把这些底层的接口供给第三方厂商使用。内部产品其实原来有和一些第三方厂商合作,厂商会提供一些特殊的采集SDK,这样我们就拥有和系统相机一样的画质权限,很大幅度的提升了拍照预览的情况。
采集到的视频,调好白平衡、曝光、亮度,以及加入算法、夜景、防抖之后我们会进行第二步——effect_SDK模块。在特效里边可能有非常多的类型,比如美颜滤镜和常见的包括2D、3D、互动、AR,大场景、商品试穿试戴之类的。里边包括的AI算法、渲染引擎、新的玩法,国外做的最好的就是Snapchat ,国内做的不错的可能就是抖音和快手。通过做这些东西,用户增强了拍摄体验,可以更快的产生UGC内容,使DAU观看率更高。坚持拍视频,留存也会更高了。因此,使用一些特效或一些互动玩法促进用户开播,促进用户变成生产者,是提升产品DAU和提升产品留存一个非常有效的手段。
话说回来,那这个部分我们做了什么?我们要做到的就是减少损害更多的画质。比如说美颜的滤镜、磨皮都会损害画质,因为磨皮在使脸上的瑕疵显得更平滑的同时把一些其他的边缘细节也掩盖了边缘细节比如皮肤的肌理等。在这种情况下,特效除了好玩和好看之外,还有一个重要任务就是要保证画质不受到更多的损害。尤其是相机厂商对此事非常敏感,有的用户为了更真实的拍照体验不惜花费重金,最后效果如果被美颜功能扰乱了,那用户必然不会买单。所以,特效美颜的重要任务就是减少画质损害。那算法增强是什么?算法增强就是刚才提到的如超分锐化之类的,在这个环节已经可以开始布局了。
VE\_SDK 和Effect\_SDK这两个模块在字节内部是有一些中间模块使其连接的,在这里不做详细介绍。在端上生产端做了这两件事情之后,我们来到云端服务器端。服务器有什么?有编解码算法、图像增强算法、视频参数等。比如配置码率,配置帧率,不同地区的距离、CDN分发之类的东西,在画面在无损的情况下,压缩的越多,越节省带宽。
我们有一个图片的服务可以使图片压缩80%、节省带宽80%的情况下,达到画质无损,可以降低运营成本。所以无损画质的极致压缩也是一个很重要的环节。到了分发端,我们有转码策略、下发策略和播放策略。端上的播放器也很重要,编码之后,当然需要解码。
生产端播放视频的播放器要有相应的配备。以及消费端在观看的时候需要做HDR或超分。观看视频时,如果视频没有拍好,但是分发时在端上又做了一些别的工作,极有可能会节省了云端的带宽。把何种功能放在端上或是云端上是由不断的实验得出来的。有些模型很大,甚至不能把放在端上,但是它的效果又特别好,这时候我们就会做一个比较。比如说一个效果优先,一个性能优先,需要性能优先的就会进行更极致的压缩即使损害了一些效果,这些大概率都是要做实时的。举一个最简单的例子,美颜可以做在云端,那为什么不把它放在云端呢?是因为美颜需要达到用户实时预览的效果,如果放在云端就不能达到用户实时预览了,因此一定要放在端上。例如人脸算法的极致压缩,我们做了一些在端上推理加速的引擎,都是为了能让用户实时体验。
很注重效果的东西一定要放在云端,举一个简单的例子。老视频是存量视频,老视频修复是为了视频有极致的体验,此时拥有实时体验效果就不是最重要的。视频之前是720P的,为了达到4K,要进行画质修复和分辨率提升,那一定是效果最重要,所以这个要放在云端。因此,平衡效果和平衡性能决定了功能放在云上还是端上。
5、生产端-画质相关
接下来我们看看实际应用效果。首先我们做了视频超分,即在不损失画质的前提下要提升像素。比如一个1080P的视频,为了能在4K的显示屏上去看,它被拉大了。如果用传统的插值算法去进行拉伸的话,画面边缘会有很多马赛克。但是如果采用智能的超分算法,就可以使画面边缘更加平滑,观看体验更好。
那抖音是怎么做的呢?首先它使用了这个超分的效果在观看端落地。比如主播拍了720P的视频,用户在端上观看的时候选择1080P。在效果上就是用户看到了清晰度更高的视频,也节省了一部分带宽。那如果原视频想使用1080P呢,那就得录视频时就采用1080P,这是某种意义上的窄带高清。
还有一个更重要的前提就是如果选择在端上做,一定要保持足够的覆盖率。大家都知道,安卓的下沉市场很多,一千五百块钱左右的机型比大家想象中的更多。我们平常用旗舰机大概两三千块钱很正常,iPhone也就五六千块钱,但实际上真正的星辰大海是在安卓机的下沉市场。在这样的情况下,要达到一个非常高的覆盖率很难。现在主流的芯片可能就是MTK和高通,包括高通450这些下沉机型,我们也会努力去覆盖。目前这些算法可以覆盖到高通660以上的机型,iOS可以覆盖到iPhone7及以上的机型,这个范围是我们认为一个算法能在端上给这个主端带来更大收益的一个算法。
那下一步是什么?是更下沉的安卓机,或是其他设备。比如车机、智能的IOT设备更是星辰大海,所以我们要做更好的适配。包括新型的NPU,把一些耗费CPU的算法移植到NPU上,让更大的模型、更好的效果在这样的一个新的硬件设备上发光发热。
第二块还是之前提到的VE\_SDK部分,VE\_SDK或者Effect _SDK研发HDR,使画面更亮。当然如果从采集的时候,事先调好合适的曝光也能达成这种效果。那它解决了什么问题呢?它解决的是视频内容里的欠曝、过曝和偏色问题。偏色是由白平衡造成,有可能白平衡没调好。白平衡是它和白的对比度,如果白不是真正的白,那么其他的颜色也不是真正的其他颜色。当你通过对HDR的一些校正还原了真正的白色,就可以使这个画面就变得更好。现在我们将HDR应用在了抖音主站的编辑上,就是打开抖音编辑里有这样的一个算法。现在在iPhone7可以达到一帧五毫秒的速度。补充一个小的tips,什么样才叫实时处理呢?一帧大概要处理多长时间才能让30FPS满足呢?答案是33毫秒,在三十多毫秒内所有的效果,包括什么编解码、渲染、画质增强等。如果30多毫秒处理不完,那就无法达到30FPS,所以这种算法必须是个位数。
下一个算法是视频降噪,降噪是在手机端针对不同的摄像头、不同噪声结果的视频生成的噪点,对噪点和细节进行平衡。在种情况下,噪点降低会使画面更糊,其他清晰的地方就会受到影响。就如这些边角都需要有一个清晰的边界,如果噪点降低,它就会变得有点模糊,分界线就不清晰了。所以噪点某种意义上代表着锐化程度,有的时候想让夜色更清晰一点,开了很高的锐化,实际上会发现噪点就多了,这是一个平衡的状态。
针对这种情况,我们做了视频智能降噪,即使在夜晚也有更好的降噪体验。例如直播行业,有些主播在直播时,周围环境较暗时,会选择开一盏灯,在两侧打光或加一个背光使亮度更加明显的,画质更加清晰。是否打光关系到室内亮度,室内特别亮时,画面就会更好。正常人的眼睛在黑暗中适应一段时间之后就能看清楚,但是摄像机不同,摄像机只能记录当时的场景,暗度越低,摄像机就越吸收越少的光,图片就显得越不清楚。所以补光很重要,视频降噪功能通过观察噪点的位置消除噪点,而且在夜晚,显示画面的质量会更高。
刚才提到的算法不会叠加到一起,一定会有适配功能。比如说到了夜晚,手机自动开启HDR。如果环境不是很黑,功能就不会打开。那这些下发策略,其实刚才说到的系统架构,就是对不同的地区和时间,对不同机型的承载能力,都会有一些更好的表现。
6、播放端-画质相关
画质这里要提到的是播放端的锐化。我们可以看到有这样的效果,能让拍摄端、编辑端有更好的观感体验。锐化不能提升分辨率,只是让我们的感官有更好的效果。
接下来介绍插帧算法,插帧是运动的顺滑程度,是通过帧率来实现的。经过了插帧之后,画面会更加流畅。插帧有非常多的用处,除了在帧率低的短视频下进行一个修复之外,还有比如说慢动作防止卡顿。手机可以拍慢动作,但是一般相机不可以,是因为可能会形成卡顿。两秒钟视频在视频编辑软件里拉到八秒钟之后,视频就会变得卡顿,有PPT即视感。做了插帧之后,就能让画面更为顺滑。
刚才提到的分别是一些离散的部分,将其串起来能变成一个端到端进行服务体验提升的流程。字节跳动提供了一整套智能终端画质增强方案,包括智能分析和画质增强,包括拍摄控制、画质增强和自动美化等,里面每一个小模块都可以自行管理。
7、生产端-特色功能
图像分割算法在短视频、直播、视频会议都有应用,展开之后又有很多细节和不一样的地方,有不一样的效果和不一样的性能,每一个细节都是非常多的工作才能做成的,包括端上的一些美化,特效,拍创作等。
针对不一样的地区,我们的美颜、特效都做了非常多的工作,让这个地区更喜欢我们的玩法。不止是短视频直播场景,我们在健身、电商等都有相应的方案。
在端上,除了画面上的功能,我们在音质处理上也做了一些努力。图像有自己的评价标准,视频音量也有,关于声音方面的也有噪声、不清晰、失真、声音小等问题。
我们通过做了一些工作优化这些方面,包括端上的玩法,比如K歌的玩法、打分、歌词对齐等都做了一些小组件。包括声音延迟,抖音共同观看功能需要两边同时看,如果我这边播放到第三秒他那边第五秒就会很奇怪。
8、如何保证端到端的体验
字节音视频服务里有云服务,有客户端套件,有应用场景。在线音视频、社交娱乐、游戏互动、在线教育里都有各自的一些不同的应用,客户端套件以及之前提到的端到端套件,也可以对外提供技术服务。我们都有自己的Demo、场景化Demo、以及各种各样的服务配套。
我所在的AI组做的功能也非常多,也拥有自己的生态,外部的设计师、内部的设计师加起来共几万个人。商城上面有7万个贴纸,现在一个星期我们生产1000个贴纸,使所有的东西都最具有时效性,让大家在最低的成本下得到这个新的效果。
今天的分享到这里就结束了,谢谢大家。