前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >独家 | 利用Cosmos微服务改善Netflix视频质量

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

作者头像
数据派THU
发布2022-01-20 08:53:45
1.6K0
发布2022-01-20 08:53:45
举报
文章被收录于专栏:数据派THU数据派THU

简介

视频质量度量是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

编辑:于腾凯

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2022-01-05,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 数据派THU 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 耦合问题
  • 将视频质量计算视为一种服务
  • 深入研究VQS的工作流
  • 过双重生活
  • 两个世界之间的桥梁
  • 将数据转换视为一种服务
  • 目前项目进展及下一步工作
  • 鸣谢
相关产品与服务
图像处理
图像处理基于腾讯云深度学习等人工智能技术,提供综合性的图像优化处理服务,包括图像质量评估、图像清晰度增强、图像智能裁剪等。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档