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

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

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

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

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

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

图1 CAE技术的分类

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

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

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

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

1. EuclidIQ提出的CAE方案

EuclidIQ研究提出的CAE技术包含了内外两部分(EuclidIQ没有披露技术细节)。内部CAE使用 perceptual quality optimization (PQO ™) 技术来根据视频内容特性自适应调整量化参数。对于输入的视频帧,计算其空域和时域上的因子(包括luminance, variance, edge strength, global motion, differential motion, artifact detection, contrast sensitivity以及 structural similarity)形成重要性分布图,如果某一区域的失真更容易被人眼察觉到,则该区域相对重要一些,在编码时也会分配较多的比特。

一般而言,根据应用在编码器中的位置,PQO可以分为预处理和后处理两种,如图2所示。预处理PQO通常会改变源视频的特性,比如滤波操作等,使得输入到编码器的视频已经发生了一些改变。后处理PQO通常对压缩后的码流进行处理,通过基于HVS相关的码流分析操作来去除一些不重要的或者冗余的数据,使得最终的码流在保持视觉质量基本不变的情况下码率更低。由于后处理PQO主要是去除视觉冗余,因此不会改善原码流的视觉质量。此外,由于后处理PQO不会对之前的编码过程产生任何影响,如果之前的编码已经产生失真,后处理操作是无法恢复的。

图2 预处理、后处理操作的位置

与上述两种PQO技术不同的是,EuclidIQ 的PQO集成在了编码器内部(如图3所示),在编码的过程中根据内容特性决定当前帧哪部分重要(减小量化参数)哪部分不重要(增大量化参数),因此在改善重要区域视觉质量的同时可以从不重要的区域节省比特,这一点要优于后处理操作。EuclidIQ 的PQO技术已经应用到了H.264和HEVC编码器中,同时适用于其他基于块的编码器如VP9、AV1等。

图3 EuclidIQ PQO技术框架

EuclidIQ的外部CAE使用的是signal-adaptive bitrate estimation (SABRE) 技术,能够为每个输入视频获取其最佳的码率点,该码率点是达到目标编码质量的最低码率。具体而言,SABRE会分析当前切片的所有视频帧,根据训练的模型来估计达到目标质量所需要的最低码率。EuclidIQ提出的外部CAE技术与其他公司的有两点不同之处。第一个是EuclidIQ的质量评估工具,该质量评估工具是基于使用了EuclidIQ自主设计的主观测试方法产生的MOS数据集训练得到的。第二个是其SABRE技术与基于PQO技术的编码器内外协作,能够在保证目标质量的同时最大程度地降低码率消耗。

2. EuclidIQ对Netflix VMAF工具的评估

之前,Netflix通过一篇技术文章“Toward a Practical Perceptual Video Quality Metric”公布了他们最新研究出的视频质量评价工具Video Multimethod Assessment Fusion (VMAF)。VMAF据称要比现有的其他一些客观指标能够更好地反映人眼对压缩视频质量的感知结果。自从Netflix开源VMAF以来,VMAF一直被业界认为很有可能替代传统视频质量评价指标(如PSNR等)。最近,EuclidIQ研究提出了一个新的主观测试方法,能够更加快速精确地计算压缩视频的mean opinion score (MOS) 分值。那么自然有个问题:VMAF与MOS的相关性如何呢,请看下文讲解。

基于新的主观测试方法,EuclidIQ进行了两项双盲主观测试。第一个测试由8位测试人员完成,第二个由9位测试人员完成。每项测试包含了20个具有不同特性的1080p视频切片,单个时长在10到30秒之间。每个切片由两个不同的H.264编码器(参考编码器A和增强版编码器B)以三个不同的码率点编码。因此,每个视频切片最终会以6个不同的编码配置编码并随机呈现给测试者进行打分。在实际测试时,每个切片的打分区间为1到5(1表示最差,5表示最好),并以0.5为步长分为9个分值。每个切片最终的MOS分值为所有打分的平均值。与此同时,对总共240个测试切片的每一个切片计算其每一帧的PSNR值和VMAF值,平均后得到整个切片的最终值。实验中,VMAF使用默认配置。

根据上述240个测试切片的结果,图4给出了PSNR vs. MOS以及VMAF vs. MOS的散点图,可以发现:与PSNR相比,VMAF与MOS的相关性更高一些,这与Netflix给出的结果基本一致。

图4 PSNR vs. MOS和VMAF vs. MOS的相关性图

此外,对于给定的编码切片,如果编码器A得到的MOS值高于编码器B,那么编码器A得到的VMAF值是否也高于编码器B呢?表1给出了其中两个切片的编码测试结果,AirChicago(7700 kbps)和AlpineCow(3650 kbps)。对于AirChicago,编码器A得到的VMAF值高于编码器B,与MOS值的表现一致,然而编码器B得到的PSNR值却高于编码器A。对于AlpineCow,PSNR与MOS的表现一致,但VMAF却与之相反。

表1 VMAF、PSNR与MOS的结果比较(部分切片)

表2进一步给出了所有测试切片的PSNR vs. MOS以及VMAF vs. MOS的一致性比较结果,可以发现,与VMAF相比,在使用不同的编码器时PSNR与MOS的一致性更高,PSNR为0.89,而VMAF只有0.70。这个结果让人有些惊讶,因为VMAF在设计时考虑了众多主观特性,理论上其与MOS的一致性更高一些。

表2 VMAF、PSNR与MOS的一致性比较

另外,图5 给出了序列AirChicago在不同评价指标下的rate-quality曲线图,左边是MOS,右边是VMAF。该序列基于MOS的BD-Rate值(编码器B相对编码器A)增益为24.5%,而基于VMAF的BD-rate却有2.2%的loss。此外,本实验还进一步计算了所有测试序列不同评价指标下的BD-Rate值(编码器B相对编码器A),基本上分为以下三类:

1. 编码器A的结果优于编码器B(BD-Rate 值loss高于5%)

2. 两者近乎一样(BD-Rate 值处于-5%到+5%之间)

3. 编码器B的结果优于编码器A(BD-Rate 值增益高于5%)

图5 Rate-quality曲线图(AirChicago)

根据上述计算结果,表3给出了所有测试序列在BD-Rate计算结果上的一致性比较(PSNR vs. MOS以及VMAF vs. MOS)。此时可以再次发现,与VMAF相比,PSNR与MOS的一致性更高,PSNR为0.78,VMAF为0.43。在所有测试序列上,基于MOS的BD-Rate增益为20.4%,基于VMAF的BD-Rate增益为2.7%,基于PSNR的BD-Rate增益为13.5%。众所周知,通常主观测试的结果在不同性能编码器上的差异要比其他客观指标的大,然而从该数据集的测试结果可以看出,VMAF的BD-Rate结果却表明编码器A和B的表现几乎相同。(注:实验条件已说明编码器B要优于编码器A)

表3 VMAF、PSNR与MOS的一致性比较(基于BD-Rate值)

从以上测试结果可以看出,当不考虑编码器的差异性时,也就是评价指标独立于编码器,VMAF vs. MOS的相关性要比PSNR vs. MOS的高。相反,当考虑编码器之间的差异时,VMAF与MOS的相关性(或一致性)较低。例如,考虑各指标在不同编码器之间的一致性(PSNR vs. MOS和VMAF vs. MOS),以及不同指标下BD-Rate值的一致性,都有类似的结果。VMAF在理论上应该与MOS的相关性更高,因为Netflix是用主观MOS数据训练VMAF模型的。然而,在后两项测试中,VMAF vs. MOS的相关性却比较低。一部分可能的原因是,Netflix使用的MOS数据与本实验的有一定的不同,毕竟两者主观测试方法存在差异。也有可能是因为Netflix在训练VMAF模型时使用的分辨率大小不一,导致VMAF在单一分辨率上的精度有所下降。

参考文献:

1. http://euclidiq.com/improving-adaptive-bitrate-streaming-via-euclidiqs-content-adaptive-encoding/

2. http://euclidiq.com/modeling-levels-content-adaptive-encoding/

3. http://euclidiq.com/understanding-industry-approaches-to-perceptual-quality-optimization/

4. http://euclidiq.com/well-netflixs-vmaf-metric-capture-video-quality/

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

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

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

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏机器之心

资源 | 这是一份非常全面的开源数据集,你,真的不想要吗?

582
来自专栏专知

ACL 2018教程:关于语义和语用的100件事(附下载)

【导读】近日,ACL 2018 在澳大利亚墨尔本举办,举办地点为墨尔本会展中心。其tutorial 旨在帮助领域新手了解计算机语言学与自然语言处理的最新进展以及...

840
来自专栏Albert陈凯

算法与数据结构algorithm

算法与数据结构 《Data structures》 介绍:高级数据结构大全,基本算法:二叉树等 《基于用户投票的排名算法(一):Delicious和Hacker...

2765
来自专栏AI研习社

丧尸目标检测:和你分享 Python 非极大值抑制方法运行得飞快的秘诀

你知道的,昨晚在我在看《行尸走肉》时,不是享受僵尸野蛮和被迫吃人,或引人入胜的故事情节,我只想建立一个目标检测系统来对僵尸进行识别。

641
来自专栏自然语言处理

Google Plus 文本提取与分析5

本文所有数据源自google+,全篇围绕五个方面来进行文本提取和分析,数据获取、中文分词、NLTK、特征词提取、文本相似度。此外,本文还涉及情感词分析,齐普夫定...

762
来自专栏企鹅号快讯

2017年度30大最惊艳的开源机器学习项目

在过去的一年里,Mybridge AI 比较了近 8,800个开源机器学习项目,选择了前30名(概率只有0.3%)。 这是一个竞争激烈的名单,精挑细选了2017...

2318
来自专栏专知

Github 上 Star 过千的 PyTorch NLP 相关项目

【导读】Github 上有许多成熟的 PyTorch NLP 代码和模型, 可以直接用于科研和工程中。本文介绍其中一下 Star 过千的时下热点项目。

1022
来自专栏人人都是极客

语音识别之回声消除及调试经验

本文讲的回声(Echo)是指语音通信时产生的回声,即打电话时自己讲的话又从对方传回来被自己听到。回声在固话和手机上都有,小时还可以忍受,大时严重影响沟通交流,它...

1163
来自专栏人工智能头条

最全数据科学学习资源:Python、线性代数、机器学习...

1123
来自专栏人工智能头条

干货 | 陪伴我学习NLP、知识图谱的那些资源(教程+书籍+网站+工具+论文...可以说很全面了)

【人工智能头条导读】作者一年前整理了这份关于 NLP 与知识图谱的参考资源,涵盖内容与形式也是非常丰富,接下来人工智能头条还会继续努力,分享更多更好的新资源给大...

981

扫码关注云+社区