视频编码优化之道

5月20号,在LiveVideoStack音视频技术社区举办的WebRTCon 2018大会上,上海交通大学图像所宋利教授在WebRTC与Codec专题作为出品人分享了关于视频编码优化方面的思考和看法。下面将介绍本次分享的主要内容。

一、背景知识

上世纪80年代以来,国际电信联盟远程通信标准化组织(ITU-T)和国际标准化组织/国际电工委员会(ISO/IEC)先后制定并颁发了一系列视频编码国际标准,对多媒体技术的研究与应用起到了巨大的推动作用。目前最新的视频编码国际标准 - 高效视频编码HEVC,已于2013年由JCT-VC正式颁布,其压缩性能在前一代H.264/AVC的基础上提高了一倍。与此同时,国内也在制定数字音视频编码技术标准 – AVS系列,目前最新推出的是AVS2。最近,由Google、Netflix等公司牵头成立的开放媒体联盟(the Alliance of Open Media, AOM)正在开发最新一代视频编码标准 – AV1,与目前的主流编解码器VP9和HEVC相比,它能够显著提升编码效率(高达30-40%)。

目前几乎所有的视频编码标准都采用基于块的混合编码框架,包括帧内预测、帧间预测、变换量化、环路滤波、熵编码等模块。相比于以往的视频编码标准,HEVC采用了许多新的编码工具和特色技术,使得编码性能有很大提升。其中包括:基于四叉树的灵活块划分结构、多个角度的帧内预测模式、自适应运动矢量预测AMVP、可变尺寸的离散余弦变换以及样点自适应补偿滤波器等。

由于源(未经压缩)视频的数据量极大,因此视频编码(压缩)的主要目的是为了去除视频数据中的冗余信息,包括空间冗余(帧内预测)、时间冗余(帧间预测)以及感知冗余(内容感知编码优化)。对于感知冗余,例如图像中有些区域往往包含许多细节,这些细节在频域表现为大量的高频信息,而人眼对于细节或高频信息并不敏感,在压缩时丢掉部分高频信息可能并不会被人眼察觉到。

目前,视频编码优化的核心主要是三个维度,包括码率(rate)、失真(distortion)和时延(delay)。具体而言,可以从性能和速度两个方面着手:

1.提升编码性能

  • 研究制定新一代视频编码标准(AV1,VVC,AVS),加入新的高性能编码技术和工具
  • 提出先进的率失真优化模型(advanced RDO,RC,…)
  • 应用内容感知自适应优化技术,即根据不同的视频内容选择合适的编码参数

2.提升编码速度

  • 算法优化,包括快速模式选择、运动估计等
  • 汇编优化(MMX, SSE1/2/3/4, AVX, AVX2, AVX-512, VMX)
  • 架构优化(并行,异构)

二、基于内容感知的编码优化

目前HEVC编码标准主要利用视频信号的统计相关性,基于帧内、帧间预测等技术来消除空间域冗余、时间域冗余信息,但这些编码技术并没有考虑人眼视觉特性。此外,为了在给定码率下使得重建视频具有较高的编码质量,许多视频编码模块采用了率失真优化技术(Rate Distortion Optimization,RDO)。在率失真优化中通常需要失真函数D能够较好地刻画信号的特性,而且易于计算。由于目前对人类视觉系统(Human Visual System,HVS)的认知水平有限,很难去比较精确地量化视觉质量。因此,一般在率失真优化计算中,MSE(Mean Square Error)或SSE(Sum of Square Error)经常被用作失真度量。众所周知,MSE或SSE没有考虑任何人眼视觉特性,使得编码后的视觉质量效果并不好。如下图所示,MSE相同时,图像质量存在巨大差异。

(Wang Zhou, A.C. Bovik, "Mean Squared Error: love it or leave it? A new look at Signal Fidelity Measures", IEEE Signal Processing Magazine , Vol.26(1):98-117, Jan. 2009. )

与此同时,对于同样的编码结果,使用MSE和主观MOS作为评测指标,结果有很大差距(30+% vs. 50+%,如下图所示,数据来自JCT-VC)。而且客观质量的显著提升可能不会转化为感知质量的相对增加。因此,需要提出一些新的感知评估指标,用在编码优化中。

目前已经相继提出了一些感知友好的评价指标,如SSIM、VIF、VQM、MOSp等,但是这些指标并不总是那么有效。近几年,Netflix通过一篇技术文章“Toward a Practical Perceptual Video Quality Metric”公布了他们最新研究出的视频质量评价工具Video Multimethod Assessment Fusion (VMAF,https://github.com/Netflix/vmaf)。VMAF据称要比现有的其他一些客观指标能够更好地反映人眼对压缩视频质量的感知结果。自从Netflix开源VMAF以来,VMAF一直被业界认为很有可能替代传统视频质量评价指标(如PSNR等)。VMAF由多种基本的视频质量指标融合而成,可以更加精确地预测编码视频的主观质量。由于每一个基本的视频质量指标在评估视频内容特性、编码失真类型以及失真程度等方面具有各自的长处和不足,Netflix基于自己的视频数据集,采用机器学习算法(SVM回归)将这些不同的质量指标融合为了一个综合性的质量指标VMAF。其中,每一个基本指标被设定有不同的权重,最终的VMAF则保留了各个指标的特性,因此可以更加精确地预测编码质量。下表对比了不同视频质量指标与主观DMOS之间的相关性,可以看出VMAF表现最优。

另一方面,为了在有限带宽和较低成本开销下提供更好的视觉体验,在实际应用中OTT视频分发平台一般采用ABR技术进行编码传输。在传统ABR技术框架中,每个源视频通过降采样和升采样产生多个分辨率版本,每种分辨率的视频进一步以多个码率编码,这些分辨率和码率的不同组合被称为编码阶梯(或配置)。用户在观看视频流时,客户端根据实际网络带宽以及设备情况选择最佳的分辨率和码率组合以期达到较好的观看体验。而在此之前,视频内容提供商需要提前编码和存储对应所有分辨率和码率组合的码流,从而应对各种可能出现的需求。

目前这种ABR技术最常见的问题是这些分辨率和码率组合太过死板,没有考虑任何视频内容特性。对于具有较高复杂度的视频(如体育比赛或动作电影),上述给定组合下的码率可能会比较低,导致编码后的视觉质量不佳。相反,对于简单场景的视频(如动画或视频会议),上述给定组合下的码率可能会过高,使得带宽和存储资源浪费。

为了解决传统ABR存在的上述问题,许多编码公司目前都在尝试提出新的技术实现使得ABR编码根据视频内容自适应进行(Content-Adaptive Encoding, CAE)。CAE技术能从以下几个方面改善ABR流传输。对于简单场景的视频,CAE可以调整编码组合使得码率更低一些,用户就能够在相同码率下观看更高分辨率的视频,在带宽节省的同时观看体验更佳。对于复杂场景的视频,CAE在编码过程中可以更加高效地分配比特,在保持总体码率不变情况下改善编码视频的视觉质量。通过加入这种内容自适应技术,原有的分辨率和码率组合会更加精简,从而有效降低内容提供商的编码和存储开销。

通常有两种应用CAE的方法:一种是将CAE应用到编码器的内部,基于视频内容以及人眼视觉特性方面的因素来调整编码决策参数;另一种是将CAE应用到编码器的外部,根据类似的特性优化调整外部编码参数(如码率等)。此外,根据对视频内容建模的粒度大小,下图展示了CAE技术多种实现方式。其中,内部CAE对视频内容建模更加精细、粒度更小,而外部CAE更加粗略一些,一般从更宏观的角度对视频内容进行建模。

1.Per-category CAE

在per-category CAE中,针对不同类型的视频会产生不同编码配置。视频分类可以是广义上的分类,比如VQEG定义的视频会议、电影、体育、音乐视频等,也可以是电影类型的分类,例如戏剧、动作电影、动画等。在这种分类下,只能粗略地针对某一类的视频调整编码配置,例如对简单场景的视频可以降低码率。然而,这种分类可能过于粗糙,因为在某一大类中,不同视频之间仍有较大的区别,因此使用同一编码配置很不精确。

2.Per-title CAE

Per-title CAE最初由Netflix提出,针对每个具体的视频都会得出相应的编码配置。根据视频不同分辨率下的rate-quality曲线,选择出最优的分辨率和码率组合。这种CAE存在的问题是,如果视频较长(如电影等),既包含复杂场景又包含简单场景,per-title技术得到的编码配置可能不够灵活,不能有效应对视频内部不同场景的变化。

3.Per-segment CAE

Per-segment CAE将输入视频划分为多个片段,根据上述per-title的方式为每个片段获取最佳的分辨率和码率组合。这些视频片段可能是原视频每隔一定时间间隔分割得到的,也可能是依据视频场景检测算法在场景切换的地方分割而来。但是,由于视频内容的动态变化,per-segment CAE仍然存在与per-title CAE类似的问题。

4.Per-frame/Per-block CAE

这类CAE技术是严格意义上的内部CAE,通过分析帧级的内容特性来调整编码决策中的参数。例如,码率控制算法根据当前帧的内容调整帧级的量化参数。而per-block CAE更是深入到帧内每个编码块,根据当前编码块和其周围编码块的内容调整模式选择以及量化参数。因此,这类CAE技术能从微观上深入到编码器内部根据当前帧的内容特性选择合适的编码参数,可以进一步提高编码效率。

目前已有许多编码优化领域的公司提出了各自的解决方案,例如:

Netflix提出的Per-Title Encode Optimization方案;YouTube提出的“Optimizing Transcoder Quality Targets Using a Neural Network with an Embedded Bitrate Model”;还有下图所列举的一些,该图显示了可以实现与HEVC相似性能的技术手段。

其中,Beamr提出的质量工具不仅可以用于评估压缩视频/图像的质量,还能够用于控制视频序列中每个帧或每个GOP的压缩量级(QP),使得编码器在保持视觉质量不变的情况下最大限度地压缩源视频。Beamr的质量工具应用于编码时分为以下几个阶段:首先通过对源视频帧的预处理来获取一些关键编码参数,然后再对输出的重建帧进行质量分析,最后根据上述信息控制当前帧的压缩量级。下图展示了Beamr质量工具用于编码的框架图。

下面简要介绍一下本实验室在CAE方面的研究。

1.内容自适应比特率估计

该工作主要提出了基于内容聚类分析的参数化模型,用于在视频编码阶段估计主观质量以及编码参数。

Y. Zhu, Li Song, etc. “SJTU 4K Video Subjective Quality Database for Content Adaptive Bitrate Estimation without Encoding”, IEEE BMSB 2016

2.基于视觉掩蔽效应的CAE

该工作主要在编码前向环路引入视觉感知的自适应系数滤波模块,滤除视觉无法感知的残差信号,码率节省约15%;后续多个研究团队以此项工作为性能比较基准,扩展到了HEVC等新的编码框架。

Z. Luo, Li Song, etc. "H.264/AVC Perceptual Optimization Coding based on JND-Directed Coefficient Suppression", IEEE TCSVT, Vol.23, No.6, 2013.

3.基于视觉掩蔽效应的码率控制

该工作主要在MOSp模型的基础上同时考虑视频空域和时域信息(包括质地复杂度和时域运动强度等)提出了新的内容感知因子。根据视觉掩蔽效应,内容感知因子用于指示不同编码单元的失真敏感度。之后内容感知因子将会作为新的权重指导CTU级的比特分配过程。

H. Wang, L. Song, etc. “Masking Effects Based Rate Control Scheme for High Efficiency Video Coding ”, IEEE ISCAS 2018

4.基于复杂度分析的编码参数自适应

该工作首先针对特定编码器进行分析,分析不同preset下的编码速度-性能表现。然后定位相关参数,根据评价指标去除对速度-性能影响不大的参数。最后设计了一个自适应参数算法,在给定编码时间的限制下,自适应选择编码参数值。

Y. Huang, L. Song, etc. “An MCMC based Efficient Parameter Selection Model for x265 Encoder”, IEEE ISCAS 2018

5.基于机器学习的编码模式选择

该工作主要利用神经网络训练出不同视频场景的编码模型。对于输入的任何场景片段,不用再进行分析就能选取相对最优的编码模式进行编码。

三、并行架构优化

目前,最新的视频编码器为了提升编码性能加入了很多算法,但带来的一个问题是编码器的复杂度成倍增加,从H.264到HEVC,计算复杂度增加了5倍以上。与此同时,消费市场对4K、8K等超高清视频的需求不断增加,从高清(1080p@30p)到4K(2160p@60p),数据量增加了8倍以上。因此,为了满足编码实时性要求,对编码器进行速度优化是不容忽视也不可避免的。

在HEVC混合编码框架中,本身已支持从GOP到帧、到Slice/Tile、再到CTU内部等不同粒度的优化。下面简要介绍一下其他几种常见的并行架构优化方案。

1.视频切片级的云编码框架

2.GOP级并行编码

3.GOP级并行与Slice/Tile级并行编码

当分辨率增加时,如何对更大尺寸的4K/8K视频进行编码?下面简要介绍一下H.265 4K编码器架构与应用。

1.H.265 4K编码器架构

2.H.265 4K编码器直播应用

3.应用案例

下面简要介绍一下本实验的一些工作。

1.GPU Acceleration for HEVC

异构并行流水视频编码结构,在GPU与CPU组成的异构并行计算平台上,编码速度提升3倍多,为学术界首个GPU+CPU联合优化HEVC编码的研究工作,成为后续多项相关研究工作的性能比较基准。

X. Wang, Li Song, etc. PVBS Motion Estimation of HEVC on Multicore CPU plus GPU platform, IEEE ICIP 2013

Y. Zhao, Li Song, etc. "Efficient Realization of Parallel HEVC Intra Encoding", IEEE ICME 2013

2.GPU Acceleration for Future Video Coding

利用GPU来加速插值模块。缓存已插值的帧,供临近的编码帧参考。核函数以CUDA的Multi-Stream方式执行,通过流水线隐藏I/O时间。最后测试结果表明,平均插值模块内加速增益为67.12%。

J. Tang, Z. Luo, R. Xie, Y.Huang, and Li Song, “GPU Based Motion-compensated Frame Interpolation Acceleration for Future Video Coding,” IEEE ICIP 2018

针对目前编码器优化所遇到的挑战,不同厂商也推出了自己的解决方案,如下表所示。不同方案在功能、性能、成本、扩展性方面各有特点。

四、趋势与思考

下图给出了MPEG关于视频编码标准和多媒体系统演进的路线图。

在视频编码方面,今后主要有以下发展趋势:

A.更高的压缩比

1.编码优化

  • CAE编码(Netflix,YouTube):20~30% gain
  • 全局优化(global rate-distortion optimization):8~10% gain

2.下一代编码技术

  • MPEG阵营 - Versatile Video Coding, > 30% gain over HEVC
  • 开放媒体阵营 – Alliance for Open Media, AV1, AV2, …
  • AVS阵营 – AVS2, AVS3, …

3.未来编码技术

  • AI like – rep./pred./trans. Learned from data
  • Brain like – signal –> spike(attention, memory, …)

B.更快的速度

1.异构并行加速

  • CPU+GPU(INTEL+NVIDIA):发挥各自的特长
  • CPU+FPGA(Intel下一代计算平台):下一代media sdk?

2.分布式并行加速

  • CDN like – 低延迟的HPC平台
  • P2P like – 低成本的PC集群

3.AI/ML并行加速

  • 不停学习,积累知识,直接将信号映射为比特(越编越快)
  • Never Ending Leaner, T.Mitchell, AAAI 15

C.更强的功能

1.VR

  • 视网膜的像素极限?16K & 120p+ & < 20ms
  • Near future: ~8K@60p

2.VR+AR=MR1.0

  • 4K/8K + 深度(Depth)
  • + 点云数据(Point Cloud)+ Virtual Object Compact Descriptor

3.MR+

  • 光场(Light Field)压缩
  • + 3D + Pixel + …

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

原文发表时间:2018-05-22

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

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏机器之心

专栏 | 李航教授展望自然语言对话领域:现状与未来

语音助手、智能客服、智能音箱、聊天机器人,近年各种自然语言对话系统如雨后春笋般地涌现,有让人眼花缭乱的感觉。一方面对话系统越来越实用化,另一方面当前技术的局限性...

18500
来自专栏机器学习和数学

[有意思的数学] 傅里叶变换和卷积与图像滤波的关系(1)

开始之前,说个事情,这个公众号的发文的频率是不确定的哈,有时候我可能不方便,或者比较忙的时候,就不更新了,这几天刚开始,我写着写着还有点上瘾,哈哈,所以每天都会...

421110
来自专栏测试开发架构之路

艾宾浩斯记忆曲线

一、 复习点的确定(根据艾宾浩斯记忆曲线制定): 1. 第一个记忆周期:5分钟 2. 第二个记忆周期:30分钟 3. 第三个记忆周期:12小时 4. 第四个记忆...

423110
来自专栏企鹅号快讯

人工智能大数据背后的神秘公式:贝叶斯公式

转自:工业智能化 大数据、人工智能、海难搜救、生物医学、邮件过滤,这些看起来彼此不相关的领域之间有什么联系?答案是,它们都会用到同一个数学公式——贝叶斯公式。它...

69650
来自专栏人工智能

什么时候强化学习未必好用?

作者 Jason Xie 编译 Erica Yi 编辑 Emily 强化学习(reinforcement learning)描述的是个体(agent)必须...

26480
来自专栏人工智能头条

几种监督式学习算法的比较

11720
来自专栏AI科技大本营的专栏

视频教程【第12期】 | 教你用5分钟搭建RNN(循环神经网络)

编译 | AI科技大本营(rgznai100) 循环神经网络或递归神经网络(Recurrent Neural Networks)可以描述动态时间行为,和前馈神经...

34240
来自专栏人工智能头条

免费!数据科学必读书单

22450
来自专栏PPV课数据科学社区

【V课堂】数据挖掘知识脉络与资源整理(六)–matlab

简介 MATLAB 是美国MathWorks公司出品的商业数学软件,用于算法开发、数据可视化、数据分析以及数值计算的高级技术计算语言和交互式环境,主要包括MAT...

27260
来自专栏CSDN技术头条

如何能既便宜又快速地获取大数据?

美国微软雷德蒙研究院首席研究员周登勇 7 月 22 - 23 日,在中国科学技术协会、中国科学院的指导下,由中国人工智能学会、阿里巴巴集团 & 蚂蚁金服主办,C...

29380

扫码关注云+社区

领取腾讯云代金券