【视频编码】 Content Aware ABR技术(五)

在本系列前面的帖子中,我们梳理了Netflix、YouTube、Beamr和EuclidIQ在ABR方面的一些进展,本文将简要介绍一下编码优化领域的另一位成员—Bitmovin的技术动态。

1 Bitmovin per-title encoding

早在六七年前,per-title encoding相关的概念就已经提出,不过大多数早期的研究基本上都认为per-title encoding仅在实验环境下有效,而并不适合商业应用,因为每个视频在编码前需要进行大量的编码测试分析才能得到每种分辨率下对应的最佳码率。直到近两年,Netflix团队通过多年的努力提出了一种视频复杂度分析开销较低的方案,使得per-title encoding进入大规模实际应用成为可能。

per-title encoding简单而言就是基于每个视频自身的复杂度找到对应每种分辨下的最佳码率,在这个码率下编码器编出的码流恰好具有可以接受的视觉质量。这个最佳码率因视频的类型而异,对于动作或体育类型的视频,一般包含更加复杂的场景内容,因此编码时需要更高的码率来保留这些信息。相反,对于场景简单的动画视频而言,使用较低的码率编码就可以保持近乎相同的视觉质量。(注:关于Netflix per-title encoding的详细内容请参考本系列之前的帖子)

我们知道,当原有的固定编码配置(即分辨率和码率组合)对于给定的视频类型并不适用时,重新获得一组最佳的编码配置是很耗时耗力的。因此,根据输入视频的复杂度将给定的编码配置进行自适应调整则是一个更好的选择。Bitmovin据此提出了以下思路,如图1所示。

图1 Bitmovin per-title encoding框架

在图1中可以看出,Bitmovin per-title encoding的第一步是进行复杂度分析,即根据输入视频的内容计算复杂度因子。在H.264中提供了一个CRF(Constant Rate Factor)选项,该选项用来确定输入视频的一个质量级别。编码前先通过CRF encoding得到平均码率,该码率能够反映输入视频整体的内容复杂度,进而可以确定出该视频的复杂度因子。一般情况下,复杂度因子分布在0.5到1.5之间,其中0.5到1属于低复杂度范围,1到1.5属于高复杂度范围。有了复杂度因子后,接下来就可以用它来调整给定的编码配置。

表1给出了一种编码配置的调整示例。对于低复杂的视频内容,可以使用更低的码率来编码。特别是在高码率配置中,码率调整的幅度更大一些,码率得到节省的同时不会对视觉质量带来明显的降级。而在低码率配置中,码率调整的幅度相对较小,避免产生明显的视觉失真。与之相反,对于高复杂度的视频内容,需要使用更高的码率来保证码流具有较高的视觉质量。特别是在低码率配置中,码率调整的幅度更大一些,因为在这些配置中增加一些码率就能带来明显的质量提升。而在高码率配置中,调整的幅度相对较小,此时码率的进一步投入不会带来明显的质量收益。因为根据相关研究可知,对于PSNR超过45dB的视频,码率的变化并不会带来视觉上的差异,而PSNR低于35dB的视频视觉差异会比较明显。

表1 编码配置调整示例

表2给出了上述Bitmovin per-title encoding方法的部分结果。对于低复杂度的视频,例如卡通类型的Glass Half,在高码率配置(width 1920)下码率降低了30%,而SSIM结果几乎相同。虽然PSNR从51.51dB降到了47.78dB,但根据上文分析可知不会出现明显的视觉差异。此外,图3展示了Bitmovin官网提供的demo效果对比,可以发现使用per-title encoding方案编码的码率更低,但视觉效果与之前几乎相同。

表2 Bitmovin per-title encoding的部分结果

图 2 编码效果示例(Glass Half)

以上部分介绍了Bitmovin per-title encoding框架:通过一次CRF encoding评估输入视频的复杂度因子,进而调整该视频不同分辨率下的码率配置。该方法相比Netflix per-title encoding更简单一些,如果针对每个分辨率都做一次CRF encoding,效果可能会有进一步的提升。(Netflix per-title encoding:先对输入视频进行测试编码获得各个分辨率下的rate-quality曲线,如图3所示。然后对这些曲线拟合得到凸包曲线,凸包曲线上的点即为各分辨率下的最佳码率点,但该方法相对耗时耗力 )

图3 Netflix per-title encoding方法示意图

2 Bitmovin per-scene adaption

虽然不同类型的视频整体的复杂度不同,但一般而言,在一个输入视频中不同的场景也具有不同的复杂度,即使是一个动作电影,其中也包含不少复杂度较低的场景。因此基于场景内容复杂度的per-scene encoding为ABR编码优化提供了一个新思路,并且这类方法处理视频的粒度更加精细,效果也更好。例如,对于视频内部的低复杂度场景可以采取更低的码率进行编码传输,而不会影响整体的视觉质量。据此,Bitmovin提出了以下per-scene adaption优化方法,整体框架如图4所示。

图4 Bitmovin per-scene adaption框架

从图4可以看出,per-scene adaption在编码中提取出了quality metadata数据,这使得客户端的自适应模块能够做出更加精确的预测和处理。具体而言,服务端首先对输入视频进行per-chunk编码并提取上述quality metadata数据。这些数据包括了由不同质量工具PSNR、SSIM、VMAF等组合产生的quality index,用以指示不同场景的复杂度和质量级别。之后,所有这些信息通过playlist/manifest或容器等方式随着码流传输到了客户端。在客户端接收到这些信息之后,其自适应模块能够根据上述信息(同时包括本地状态信息如数据吞吐率、缓冲区的充盈度、用户偏好等),对低复杂度的场景片段使用更低码率的码流版本,具体如图5所示。从图中可以看出,传统算法对简单场景仍然保持在2Mbps左右的码率,而Bitmovin的per-scene adaption方案自动将码流切换到了1Mbps,因此使用该自适应方案可以有效节省带宽。与此同时,在部分高复杂度场景,per-scene adaption方案自动切换到了较高码率的码流,因此这部分视频的视觉质量得到了提升。

此外,图6进一步给出了码率随时间变化曲线,可以看出传统算法在整个序列播放期间对于不同场景使用相同码率的码流,而per-scene adaption方案则根据场景复杂度的不同智能选择合适码率的码流进行播放,可见per-scene adaption方案降低码率的效果较为明显,此外还可以在网络带宽不佳的情况下有效避免播放卡顿。

图5 per-scene adaption码流切换示例

图6 码率变化曲线

参考资料:

1. https://bitmovin.com/per-title-encoding/

2. https://bitmovin-a.akamaihd.net/blog-contents/per-title/#

3. https://medium.com/netflix-techblog/per-title-encode-optimization-7e99442b62a2

4. https://bitmovin.com/per-scene-adaptation-going-beyond-bitrate/

5. https://bitmovin.com/higher-quality-lower-bandwidth-multi-codec-streaming/

6. https://bitmovin.com/quality-and-bandwidth-optimization-with-advanced-video-streaming-techniques/

原文发布于微信公众号 - 媒矿工厂(media_tech)

原文发表时间:2018-01-25

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏技术翻译

10个用于人工智能的开源工具/框架

TensorFlow™是一个开源软件库,最初由研究Google Brain Team的研究人员和工程师开发。TensorFlow用于使用数据流图进行数值计算。图...

1.3K2
来自专栏AI研习社

资深算法工程师万宫玺:Java 工程师转型 AI 的秘密法宝——深度学习框架 Deeplearning4j | 分享总结

深度学习是人工智能发展最为迅速的领域之一,Google、Facebook、Microsoft 等巨头都围绕深度学习重点投资了一系列新兴项目,他们也一直在支持一些...

38710
来自专栏我是攻城师

25个Java机器学习工具&库

4118
来自专栏人工智能头条

25个Java机器学习工具库

3126
来自专栏AI科技评论

动态 | ACL 2018 公布四篇最佳 demo 候选论文,三篇论文第一作者来自中国

雷锋网 AI 科技评论按:7 月 9 日,自然语言处理顶会 ACL 公布了最佳 demo 论文的四篇候选论文,名单如下:

1414
来自专栏我是攻城师

网页去重思路浅析(一)

4498
来自专栏FreeBuf

浅析PRODIGAL:真实企业中的内部威胁检测系统

0x00 写在前面 2013年2月份美国白宫发布了一份总统备忘录,专门就当前面临的内部威胁(Insider Threats)进行了分析,并且督促行政部门紧急出台...

20610
来自专栏CreateAMind

TensorFlow-dev-summit:那些TensorFlow上好玩的和黑科技

本文属于介绍性文章,其中会介绍许多TensorFlow的新feature和summit上介绍的一些有意思的案例,文章比较长,可能会花费30分钟到一个小时

1302
来自专栏媒矿工厂

视频压缩编码的新进展

前言 2015年10月,国际电信联盟(ITU-T)的视频编码专家组(VCEG)和国际标准化组织/国际电工委员会(ISO/IEC)的运动图像专家组(...

5547
来自专栏CSDN技术头条

25个Java机器学习工具&库

本列表总结了25个Java机器学习工具&库: 1. Weka集成了数据挖掘工作的机器学习算法。这些算法可以直接应用于一个数据集上或者你可以自己编写代码来调用。W...

2497

扫码关注云+社区

领取腾讯云代金券