Netflix将VP9应用于移动视频流编码

A.采用的两种编码标准:

1. VP9:

VP9是一款由Google开发的免费开源的视频编解码器,与最优的H.264编码器相比具有将近50%的性能增益。VP9在Web浏览器和移动设备具有广泛的支持(支持Android设备,大多数浏览器以及越来越多的消费类电子设备)。VP9编解码器早已用于YouTube,而且最近被Netflix用于编码低比特率的移动视频流。近期,Ittiam与Google,Netflix合作解决vp9开源实现libvpx的一些关键问题。这些改进将为更大的视频流社区带来显著的改善。与广泛使用的H.264相比,先期的改进使得在最高质量设置下对视频文件进行编码的turnaround时间大幅减少。改进后的编码器在16核机器上编码1080p视频时可以减少50-70%的编码时间。

相比于H.264/AVC,VP9具有许多提高压缩性能的工具,包括:

1. 运动预测块的尺寸最大为64x64

2. 八分之一像素精度运动矢量

3. 三个可切换的8抽头亚像素插值滤波器

4. 更优的运动矢量编码

5. 更大块的DCT变换(16x16, 32x32)

6. 非对称DST变换(ADST)

7. 适应新的块大小的环路滤波

8. 分割图

2. H.264/AVC High Profile:

许多Netflix-ready设备接收的视频流依然使用H.264/AVC Main profile(AVCMain)编码,H.264/AVC解码器在Web浏览器、电视、移动设备和其他电子设备上具有广泛支持。Netflix为移动视频流采用了两种压缩格式:H.264/AVC High Profile和VP9(profile 0)。与Main profile类似,H.264/AVC的High Profile同样具有广泛的解码支持。H.264/AVC High Profile的总体结构与Main profile一致,并加入了其他一些提高压缩效率的特性和工具:

1. 8x8变换和8x8帧内预测

2. 量化缩放矩阵

3. Cb和Cr分开控制

B. 更优的编码器配置:

除了上述两种编码标准外,Netflix为移动视频流编码提供了优化的编码器配置:

1. 增加了Random Access图像周期:平衡了编码效率和随机接入点粒度大小

2. 更多连续的B帧或更长的Alt-ref距离:允许编码器灵活选择更多的B帧(H.264/AVC)或更长的Alt-ref距离(VP9),对缓慢的场景变换更为有效

3. 更大的运动搜索范围:带来更好的运动估计以及更少的帧内编码块

4. 更多的模式选择:允许编码器评估更多的编码选项

C. Per-chunk编码优化:

在并行编码流水线中,视频源被分割成若干chunk,每个块被单独处理和编码,并为每个单独的chunk基于其复杂性(运动,细节,质地等)优化了比特率分配。这样做减少了不同chunk之间的质量波动,避免了将太多比特分配给复杂度较低的块。

D. 编码结果比较:

三种编码方式:

  1. AVCMain:H.264/AVC Main profile,使用per-title优化,作为anchor
  2. AVCHi-Mobile:H.264/AVC High Profile,使用更优的编码器配置和per-chunk编码优化
  3. VP9-Mobile:VP9,使用更优的编码器配置和per-chunk编码优化

图1给出了基于PSNR和VMAF的BD-rate结果,AVCHi-Mobile相比AVCMain能达到15%的PSNR增益和19%的VMAF增益,而VP9-Mobile的增益更是高达36%。Netflix新的两种移动视频流编码方案在相同视频质量的情况下能够节省更多的比特率,为带宽较低以及网络费用昂贵的用户带来福音。

图1 AVCHi-Mobile和VP9-Mobile相对AVCMain的BD-rate增益

此外,图2给出了不同码率点处的平均VMAF值,增益也比较明显。例如,在1Mbps下,AVCHi-Mobile和VP9-Mobile的平均VMAF值分别增加了7和10,对于移动用户而言在有限的带宽下可以体验到更高的视觉质量效果。

图2 AVCHi-Mobile和VP9-Mobile相对AVCMain的VMAF提升

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

原文发表时间:2017-08-12

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

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏腾讯技术工程官方号的专栏

FPGA异构计算在图片处理上的应用以及HEVC算法原理介绍

作者介绍:chaningwang,2008年毕业于中国科学院研究生院,主攻FPGA高性能计算、FPGA图像处理等方向。 先后在华为、怡化公司从事FPGA开发...

3256
来自专栏AI研习社

一窥谷歌神经机器翻译模型的真面貌,其底层框架终于开源!

去年,谷歌发布了 Google Neural Machine Translation (GNMT),即谷歌神经机器翻译,一个 sequence-to-seque...

3469
来自专栏DHUtoBUAA

基于蚁群算法的机械臂打孔路径规划

  该问题来源于参加某知名外企的校招面试。根据面试官描述,一块木板有数百个小孔(坐标已知),现在需要通过机械臂在木板上钻孔,要求对打孔路径进行规划,力求使打孔总...

5906
来自专栏人工智能头条

从Theano到Lasagne:基于Python的深度学习的框架和库

1541
来自专栏数据派THU

这5个机器学习项目你不可错过!(附代码)

本文共2299字,建议阅读6分钟。 本文将给大家介绍五个十分可怕但还鲜为人知的机器学习项目,囊括了一些潜在的机器学习的新想法。

683
来自专栏数据派THU

带你用4行代码训练RNN生成文本(附资源)

本文共1400字,建议阅读6分钟。 本文介绍仅需几行代码就能训练出任意大小和复杂度的文本的神经网络文本发生器。

1002
来自专栏程序员的知识天地

Python进行数据可视化的9种常见方法,易懂实用!

其实利用 Python 可视化数据并不是很麻烦,因为 Python 中有两个专用于可视化的库 matplotlib 和 seaborn 能让我们很容易的完成任务...

1177
来自专栏媒矿工厂

HDR关键技术:主要标准介绍(续)

前文我们已经对HEVC的HDR编码优化技术和HDR/WCG相关的整体编码方案做了介绍,本文总结几种具有代表性的技术方案,对业内常用的几个HDR分发标准做简要梳理...

1171
来自专栏ATYUN订阅号

谷歌详述Smart Linkify的核心动力——机器学习

本周推出的最新版谷歌移动操作系统Android Pie,其最轻松的功能之一就是Smart Linkify。它是一种API,可在文本中检测到地址,电话号码和其他此...

722
来自专栏量化投资与机器学习

我用Facebook开源神器Prophet,预测时间序列基于Python(代码+论文)

Prophet是Facebook 开源一款基于 Python 和 R 语言的数据预测工具。Facebook 表示,Prophet 相比现有预测工具更加人性化,并...

1252

扫码关注云+社区