独家 | 利用Cosmos微服务改善Netflix视频质量

数据派THU

共 4599字,需浏览 10分钟

 ·

2022-01-09 04:16

作者: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


:杨学俊







NLPIEC-ISO 7816GLOBAL TIMESTHU 

//

沿THU


~



IDDatapiTHU-ID




拥抱组织


浏览 55
点赞
评论
收藏
分享

手机扫一扫分享

分享
举报
评论
图片
表情
推荐
点赞
评论
收藏
分享

手机扫一扫分享

分享
举报