作者:Christos G.Bampis,陈超,Anush K.Moorhy,李志翻译:陈之炎校对:赵茹萱
本文约2800字,建议阅读6分钟
本文解释了如何在Cosmos平台上设计微服务和工作流,以推进视频质量的创新和优化。
简介
视频质量度量是Netflix流媒体管道的一个重要组成部分。视频质量度量可用于实现视频编码优化、执行视频编解码器比较、执行A/B测试和优化流媒体QoE决策。更为特别的是,VMAF指标是提高Netflix流媒体视频质量的核心,业已成为了Netflix视频质量度量的默认标准,由于它是开源的,同时也成为了整个视频行业的默认标准。
随着VMAF的发展,它已经与Netflix中越来越多的编码和流媒体工作流集成到一起,通过可扩展的方式来促进视频质量的创新和优化。例如,当设计一个新版本的VMAF时,需要在整个Netflix的电影和电视节目目录中推出它。本文解释了如何在Cosmos平台上设计微服务和工作流,以推进视频质量的创新和优化。
耦合问题
当前,视频质量度量已经成为了Reloaded系统的一个部分重要组成部分。Reloaded系统负责处理导入的媒体文件,如视频、音频和字幕等等,并使其可在流媒体服务上播放。Reloaded系统是一个成熟和可扩展的系统,然而,其整体架构使得创新的速度得以减缓。更为重要的是,在Reloaded系统中,视频质量度量与视频编码同时生成。这种紧耦合意味着:如果不进行重新编码,便不可能实现以下目标:
A) 推出新的视频质量算法;
B) 维护目录中数据的质量(如:通过BUG 修复)。
为了提高视频质量而对目录中的所有媒体文件重新编码,这是一个成本昂贵的解决方案,因此行不通。这种紧耦合问题在Reloaded系统的体系结构中随处可见,为此媒体云工程和编码技术团队一直在合作开发一个新的解决方案,以解决先前Reloaded系统体系结构中的许多问题,称这个新的重新加载系统为Cosmos。
Cosmos是一个工作流驱动的、以媒体为中心的微服务计算平台。正如博客中所强调的那样,Cosmos有如下诸多好处:如各问题之间相互分离、独立部署、可观察性、快速的原型化和快速的量产化。在本文中,描述了如何利用Cosmos构建视频质量服务,以及如何在运行生产系统时,实现将媒体文件迁移到Cosmos,以便在运行生产系统时实现视频质量的计算。
将视频质量计算视为一种服务
在Cosmos中,视频质量计算由一个名为视频质量服务(VQS)的独立微服务来执行。VQS的输入为两个视频:一个源视频及一个衍生视频,并返回衍生视频质量的度量值。测量到的视频质量度量值可以是一个单一的输出值(例如,VMAF);在明确要求计算的情况下(例如,VMAF和SSIM),也可以返回多个感知视频质量的得分值。
和大多数Cosmos服务一样,VQS由三个特定域和未知规模大小的层组成。每一层都构建在规模大小已知的Cosmos子系统之上,包括一个外部的API层(Optimus)、一个基于规则的视频质量工作流层(Plato)和一个无服务器的计算层(Stratum)。层间的内部通信基于内部开发和维护的Timestone排队系统。下图显示了括号中的每一层和对应的Cosmos子系统。
1. VQS 的API层包括:一个质量测量请求(measureQuality)函数和一个用于异步获取质量结果(getQuality)函数。
2. VQS工作流层由决定如何测量视频质量的规则组成。与基于chunk的编码类似,VQS工作流包括基于chunk的视频质量计算,后面跟随一个组装步骤,这种架构可以增加吞吐量、减少延迟。基于chunk的质量计算可以计算出每个chunk的质量,后续的组装步骤将所有chunk的质量计算的结果组合到一起。例如,如果有两个chunk,一个chunk包含2帧数据,VMAF分数分别为[50,60];一个chunk包含3帧数据,VMAF分数分别 [80,70,90],组装步骤将两个chunk的VMAF分数合并为[50,60,80,70,90]。在 Stratum 中chunking规则为视频中的所有chunk均调用质量计算函数,组装规则调用相应的组装函数。
3. VQS的Stratum层由两个函数组成,分别执行基于chunk的质量计算和组装。
深入研究VQS的工作流
下图是观测到的轨迹图,从图中可以看出 VQS的工作原理。该请求给出了要计算其质量的源视频及其衍生视频,并请求VQS给出 VMAF、PSNR和SSIM等质量指标的得分数。
下面对整个过程逐步进行描述:
1. 使用measureQuality端点调用VQS,VQS API层将外部请求转换为VQS特定的数据模型。
2. 启动工作流。根据视频长度、吞吐量和延迟需求及可用规模大小等因素,VQS工作流将质量计算分成两个chunk,为此,它创建两个消息(每个chunk一个消息),由基于chunk的质量计算层函数独立执行,为每个chunk计算出各自的三个质量指标。
3. 开始为每个chunk进行质量计算。图中并没有单独显示chunk的开始时间,但是,每个chunk的质量计算都是在资源可用的基础上独立地开始和完成(注释为3a和3b)。
3b.在所有chunk质量计算完成之后,Plato启动组装。
4. 开始组装,对各质量指标分别调用装配层函数。与先前一样,各质量指标装配的起始时间可能会有所不同。这种分离式的计算允许部分计算失败,提前返回参数,可根据质量指标复杂度独立扩展。
4a & 4b.其中两个指标(例如PSNR和SSIM)组装完成。
4c & 5..VMAF组装完成,整个工作流也因此结束。可以通过getQuality端点将质量指标值提供给调用者。
以上是工作流程的简要说明,然而,在实际项目中,设计相当灵活,可以支持大量的附加特征,如不同的质量度量、自适应分块策略、以不同的时间粒度(帧级、段级和聚合)生成质量,以及测量不同用例的质量等等,此外还可以测量不同设备类型(如电话)、SDR、HDR等的质量。
过双重生活
虽然VQS是一个致力于视频质量微服务,可以解决上述视频编码的耦合问题,但还有另一个问题函待解决。整个Reloaded系统目前正在向Cosmos迁移。这是一个浩大的工程,需要跨团队的努力,某些应用程序尚在重新加载的过程中,而有一些应用程序已经迁移到了Cosmos当中。如何利用VQS,对某些应用程序的视频质量度量重新加载?换句话说,即如何在这两个不同的世界上管理好生活?
两个世界之间的桥梁
为了过好双重生活,我们开发了几个“桥接”的工作流,利用“桥接”的工作流,可以将视频质量的流量重新加载到Cosmos当中。各个工作流还可以充当将数据模型重新加载成Cosmos服务数据模型的转换器。与此同时,Cosmos工作流可以直接与VQS集成,无需桥接,这样一来,不仅可以在这两个世界中运行,提供视频质量度量功能,而且还可以在现有基础上推出新功能(既可以为Reloaded客户提供应用程序,又可以为Cosmos客户提供应用程序)。
将数据转换视为一种服务
要完成设计要求,还必须解决最后一道难题。虽然有办法调用VQS,但VQS输出的设计应避免Reloaded的集中式数据建模方式。例如,VQS依赖于Netflix媒体数据库(NMDB)来存储和索引质量分数,而Reloaded系统则是将不可查询的数据模型和文件混用。为了更加有助于数据迁移,引入了另一种Cosmos微服务:文档转换服务(DCS)。DCS负责实现Cosmos数据模型和Reloaded数据模型之间的转换。此外,DCS还有NMDB接口,能够实现存储的数据与基于Reloaded文件的数据之间的双向转换。此外,DCS还有其它几个端点,在需要的时候执行类似的数据转换,利用上述端点,使得数据转换可以像罗马骑术一般优雅地实现。
目前项目进展及下一步工作
目前,我们几乎将所有的视频质量计算从Reloaded迁移到了Cosmos当中,VQS代表了Cosmos平台的最大工作载荷。视频质量度量在Cosmos平台业已成熟,下一步将致力于使VQS更加灵活和高效。除支持现有的视频质量功能外,今后所有新的视频质量功能都将从VQS中开发出来。请继续关注更多这些创新算法的细节。
鸣谢
这项工作得到Netflix公司诸多同事的大力协助。感谢George Ye 和Sujana Sooreddy 实现了Reloaded-Cosmos桥的开发,Ameya Vasani 和Frank San Miguel 对VQS规模提升的贡献,以及Susie Xia对性能分析的帮助。此外,衷心感谢:媒体内容回放团队、媒体计算/存储基础设施团队和整个Cosmos平台团队,是他们让Cosmos复活,并全心全意地支持我们进入Cosmos探险。
原文标题:
Netflix Video Quality at Scale with Cosmos Microservices
原文链接:
https://netflixtechblog.com/netflix-video-quality-at-scale-with-cosmos-microservices-552be631c113?source=collection_home
编辑:于腾凯
校对:杨学俊
译者简介
陈之炎,北京交通大学通信与控制工程专业毕业,获得工学硕士学位,历任长城计算机软件与系统公司工程师,大唐微电子公司工程师,现任北京吾译超群科技有限公司技术支持。目前从事智能化翻译教学系统的运营和维护,在人工智能深度学习和自然语言处理(NLP)方面积累有一定的经验。业余时间喜爱翻译创作,翻译作品主要有:IEC-ISO 7816、伊拉克石油工程项目、新财税主义宣言等等,其中中译英作品“新财税主义宣言”在GLOBAL TIMES正式发表。能够利用业余时间加入到THU 数据派平台的翻译志愿者小组,希望能和大家一起交流分享,共同进步
翻译组招募信息
工作内容:需要一颗细致的心,将选取好的外文文章翻译成流畅的中文。如果你是数据科学/统计学/计算机类的留学生,或在海外从事相关工作,或对自己外语水平有信心的朋友欢迎加入翻译小组。
你能得到:定期的翻译培训提高志愿者的翻译水平,提高对于数据科学前沿的认知,海外的朋友可以和国内技术应用发展保持联系,THU数据派产学研的背景为志愿者带来好的发展机遇。
其他福利:来自于名企的数据科学工作者,北大清华以及海外等名校学生他们都将成为你在翻译小组的伙伴。
点击文末“阅读原文”加入数据派团队~
转载须知
如需转载,请在开篇显著位置注明作者和出处(转自:数据派ID:DatapiTHU),并在文章结尾放置数据派醒目二维码。有原创标识文章,请发送【文章名称-待授权公众号名称及ID】至联系邮箱,申请白名单授权并按要求编辑。
发布后请将链接反馈至联系邮箱(见下方)。未经许可的转载以及改编者,我们将依法追究其法律责任。
点击“阅读原文”拥抱组织