在H266还有一定距离的情况下,AV1因其高编码效率,免费专利等特点逐渐成为了各大厂商发展的重点,在可预见性的未来,AV1会是视频编码技术的一个重要发展方向,记录一下AV1的基本概述论文
《An Overview of Core Coding Tools in the AV1 Video Codec》
Author:Yue Chen; Debargha Murherjee; Jingning Han; Adrian Grange; Yaowu Xu; Zoe Liu
Published in: 2018 Picture Coding Symposium (PCS)
Date of Conference: 24-27 June 2018
Date Added to IEEE Xplore: 06 September 2018
ISBN Information:
Electronic ISSN: 2472-7822
DOI: 10.1109/PCS.2018.8456249
Publisher: IEEE
Conference Location: San Francisco, CA, USA
摘要
AV1是一个新兴的开源且免版税的视频压缩格式,由开放媒体联盟(AOMedia)行业联盟于2018年初共同开发并最终确定。AV1开发的主要目标是在保持实际的解码复杂性和硬件可行性的同时,实现比现有最先进的编解码器更显著的压缩增益。本文提供了AV1中关键编码技术的简要技术概览,以及与VP9和HEVC的初步压缩性能比较。
1.前言
过去十年间,视频应用在互联网上变得无处不在,现代设备推动了高分辨率、高质量内容消费的快速增长。像视频点播和视频通话这样的服务是主要的带宽消费者,它们对传输基础设施提出了严峻挑战,因此也创造了对高效率视频压缩技术的更强烈需求。另一方面,网络成功的关键因素之一是核心技术,例如HTML、网络浏览器(Firefox、Chrome等)以及像Android这样的操作系统,都是开放且可以自由实现的。因此,为了创造一个与领先商业选择相媲美的开放视频格式,2013年中,谷歌推出了并部署了VP9视频编解码器[1]。VP9在编码效率上与最先进的收费编解码器H.265/HEVC[2]相竞争,同时显著优于最常用的格式H.264/AVC[3]以及它自己的前身VP8[4]。
然而,随着对高效率视频应用的需求增长和多样化,继续推进压缩性能变得至关重要。为此,2015年末,谷歌共同创立了开放媒体联盟(AOMedia)[5],这是一个由30多家领先的高科技公司组成的联盟,共同致力于开发名为AV1的下一代开放视频编码格式。
AV1开发的重点包括但不限于实现:一致的高质量实时视频传输、适应各种带宽的现代设备、可管理的计算足迹、针对硬件的优化,以及商业和非商业内容的灵活性。该编解码器最初以VP9工具和增强功能为基础,然后提出了新的编码工具,在AOMedia的编解码器、硬件和测试工作组中进行测试、讨论和迭代。截至目前,AV1代码库已进入最终的错误修复阶段,并已经整合了多种新的压缩工具,以及为特定用例设计的高级语法和并行化功能。本文将介绍AV1中的关键编码工具,这些工具在相同质量下相比性能最佳的libvpx VP9编码器,平均比特率降低了近30%。
2.AV1编码技术
2.1 编码块划分
VP9使用从64×64级别开始到4×4级别的4路划分,对于8×8及以下大小的块有一些额外的限制,如图1的上半部分所示。请注意,被指定为R的划分指的是递归的,即在同一较低尺度上重复相同的划分,直到我们达到最低的4×4级别。
AV1不仅将划分扩展到如图中所示的10路结构,而且还将最大尺寸(在VP9/AV1术语中称为超块)增加到从128×128开始。请注意,这包括了VP9中不存在的4:1/1:4矩形划分。这些矩形划分都不能进一步细分。此外,AV1在8×8级别以下的划分使用上增加了更多的灵活性,即在某些情况下,2×2色度插值预测现在变得可能。
注解:
(1)AV1相对于VP9而言,增加了6种划分模式,除了四叉树划分仍然可以向下继续划分之外,其余所有的模式都不允许继续划分。如果当前层级使用四叉树划分,下一层级还可以使用1:4等划分方式
2.2 帧内预测
VP9支持10种帧内预测模式,包括对应于45至207度角的8种方向模式,以及2种非方向预测器:DC和真实运动(TM)模式。在AV1中,帧内编码器的潜力以多种方式进一步被探索:方向外推的粒度得到提升,非方向预测器通过考虑梯度和演变的相关性得到丰富,利用了亮度和色度信号的一致性,并特别为人造内容开发了工具。
-
增强型方向帧内预测:为了利用方向纹理中更多样化的空间冗余,在AV1中,方向帧内模式被扩展到具有更细粒度的角度集。原来的8个角度被设定为标准角度,基于这些角度引入了3度步长的细微角度变化,即预测角度由一个标准帧内角度加上一个角度增量来表示,该增量是步长的-3到3倍。为了通过通用方式在AV1中实现方向预测模式,48种扩展模式是通过一个统一的方向预测器实现的,该预测器将每个像素连接到边缘中的一个参考子像素位置,并通过2-tap双线性滤波器插值参考像素。总共在AV1中有56个方向内预测模式被启用。
-
非方向性平滑帧内预测器:AV1通过添加3个新的平滑预测器SMOOTH_V、SMOOTH_H和SMOOTH来扩展非方向性内部模式,这些预测器在垂直或水平方向上使用二次插值预测块,或者它们的平均值,这是在将右侧和底部边缘近似为顶部边缘的最右像素和左侧边缘的底部像素之后进行的。此外,TM模式被PAETH预测器取代:对于每个像素,我们复制顶部、左侧和左上角边缘参考中的一个,其值最接近(顶部 + 左侧 - 左上角),意味着从梯度较低的方向采用参考。
-
基于递归滤波的帧内预测器:为了捕捉与边缘参考的衰减空间相关性,为亮度块设计了FILTER INTRA模式,将它们视为2-D非可分离马尔可夫过程。为AV1预设计了五种滤波帧内模式,每种模式由一组八个7-tap滤波器表示,这些滤波器反映了一个4×2块内像素与其7个相邻像素之间的相关性。一个帧内块可以选择一个滤波内部模式,并以4×2块的形式进行批量预测。每个块通过选定的7-tap滤波器集合进行预测,在8个像素位置以不同的方式加权邻居。对于那些没有完全附着在块边界上的参考的补丁,使用直接邻居的预测值作为参考,这意味着预测在补丁之间递归计算,以便在更远的位置结合更多的边缘像素。
-
从亮度预测色度:从亮度到色度(CfL)是一个仅色度的帧内预测器,它将色度像素模拟为重合重建亮度像素的线性函数。重建的亮度像素被下采样到色度分辨率,然后去除DC分量以形成AC贡献。为了从AC贡献中近似色度AC分量,AV1-CfL基于原始色度像素确定参数,并通过比特流发送它们,而不是像一些先前的技术那样要求解码器隐含缩放参数。这减少了解码器的复杂性,并产生了更精确的预测。至于DC预测,它是使用内部DC模式计算的,这对于大多数色度内容来说是足够的,并且有成熟的快速实现。关于AV1-CfL工具的更多细节可以在[6]中找到。
-
颜色调色板作为预测器:有时,特别是对于人造视频,如屏幕捕获和游戏,块可以用少量独特的颜色近似。因此,AV1将调色板模式作为一般额外的编码工具引入到内部编码器中。每个平面的调色板预测器由(i)一个颜色调色板指定,包含2到8种颜色,以及(ii)块中所有像素的颜色索引。基础颜色的数量决定了保真度和紧凑性之间的权衡。颜色索引使用基于邻域的上下文进行熵编码。
-
帧内块复制:AV1允许其内部编码器引用同一帧中先前重建的块,这与交织编码器引用前一帧中的块的方式类似。这对于通常包含重复纹理、图案和字符的屏幕内容视频非常有用。具体来说,引入了一种名为IntraBC的新预测模式,它将当前帧中重建的块复制作为预测。参考块的位置通过位移向量指定,类似于运动补偿中运动向量压缩的方式。位移向量对于亮度平面是以整像素为单位的,并且可以参考对应色度平面上的半像素位置,其中双线性滤波用于亚像素插值。
注解:
(1)VP9中支持10种帧内预测模式,包括8种方向模式(从45°到207°),2种非方向模式(DC和真实运动TM模式)
(2)AV1中,基于VP9的8种方向预测模式,将这些模式加上或减去3°,形成新的方向预测模式,为48种。因此,一共具有48+8=56种方向预测模式
(3)AV1中,非方向预测模式去掉了VP9中的TM模式,新增了SMOOTH模式(SMOOTH_V、SMOOTH_H和SMOOTH),基于递归滤波的帧内预测模式,Cfl模式,Palette模式,IBC模式
(4)平滑预测器使用上方或者左侧的参考像素,按照插值的方式进行预测
(5)基于递归滤波的帧内预测器,将帧中划分成为多个4x2的小区域,使用其左侧、左上和上方相邻的7个像素点进行加权预测。这种预测模式,偏向于斜向纹理。
2.3 帧间预测
运动补偿是视频编码中的一个重要模块。在VP9中,存在3个候选参考帧,从其中选择2个,然后预测器执行基于块的平移运动补偿,或者如果信号了两个参考帧,则平均这两个预测。AV1拥有一个更强大的帧间编码器,它大幅扩展了参考帧和运动向量的容量,打破了基于块的平移预测的限制,还通过使用高度可适应的加权算法和源来增强复合预测。
-
扩展参考帧:AV1将每个帧的参考帧数量从3扩展到7。除了VP9的LAST(nearest past, 最近距离的过去帧)帧、GOLDEN(distant past, 远距离帧)帧和ALTREF(teamporal filtered future, 时间过滤的未来帧)帧之外,我们增加了两个近过去帧(LAST2和LAST3)和两个未来帧(BWDREF和ALTREF2)[7]。图2展示了一个golden-frame group的多层结构,在这个结构中,一个自适应数量的帧共享相同的GOLDEN和ALTREF帧。BWDREF是一个直接编码的前瞻帧,没有应用时间过滤,因此在相对较短的距离内更适合作为后向参考。ALTREF2作为GOLDEN和ALTREF之间的中间过滤未来参考。所有新的参考都可以被单个预测模式选择,或者被组合成一对形成复合模式。AV1提供了丰富的参考帧对集合,提供了双向复合预测和单向复合预测,因此可以以更自适应和最优的方式编码具有动态时间相关特性的各种视频。
-
动态空间和时间运动向量引用:高效的运动向量(MV)编码对于视频编解码器至关重要,因为它占据了inter帧的大部分比特率成本。为此,AV1采用了一个复杂的MV引用选择方案,通过搜索空间和时间候选来为给定块获得良好的MV参考。AV1不仅比VP9更深入地搜索空间邻域以构建空间候选池,而且还利用时间运动场估计机制来生成时间候选。运动场估计过程分为三个阶段:运动向量缓冲、运动轨迹创建和运动向量投影。首先,对于编码帧,我们存储参考帧索引和相关的运动向量。在解码当前帧之前,我们检查可能通过每个64×64处理单元的运动轨迹,例如图3中的 M V R e f 2 MV_{Ref2} MVRef2指向帧 R e f 2 Ref2 Ref2中的一个块到帧 R e f 0 R e f 2 Ref0{Ref2} Ref0Ref2的某处,通过检查最多3个参考中的192×128缓冲运动场。这样做,对于任何8×8块,它所属的所有轨迹都被记录下来。接下来,在编码块级别,一旦确定了参考帧,就通过将运动轨迹线性投影到所需的参考帧上来派生运动向量候选,例如将图3中的 M V R e f 2 MV_{Ref2} MVRef2转换为 M V 0 MV_0 MV0或 M V 1 MV_1 MV1。一旦所有空间和时间候选在池中聚合,它们就会被排序、合并和排名,以获得最多4个最终候选[8]。评分方案依赖于计算当前块具有特定MV作为候选的可能性。为了编码一个MV,AV1从列表中发出选定参考MV的索引,然后根据需要编码一个增量。在实践中,参考MV和增量的组合是通过模式发出的,就像在VP9中一样。
-
重叠块运动补偿(Oerlapped Block Motion Compensation, OBMC):OBMC可以通过平滑地结合相邻运动向量创建的预测来大幅减少块边缘附近的预测误差。在AV1中,设计了一个双向因果重叠算法,使OBMC能够轻松适应高级划分框架[9]。它逐步将基于块的预测与上方和左侧的次级帧间预测器结合,通过在垂直和水平方向上应用预定义的一维滤波器。次级预测器仅在当前块的顶部/左侧半部分的受限重叠区域内操作,以确保它们不会在同一侧相互纠缠。AV1 OBMC仅在使用单个参考帧的块上启用,并且只与具有两个参考帧的任何邻居的第一个预测器一起工作,因此最坏情况下的内存带宽与传统复合预测器所需的相同。
-
变形(warped)运动补偿:在AV1中探索了变形运动模型,通过启用两种仿射预测模式,即全局和局部变形运动补偿[10]。全局运动工具用于处理摄像机运动,并允许在帧级别显式传递当前帧与其参考帧之间的运动模型。局部变形运动工具旨在通过从分配给因果邻域的运动向量信号的二维位移中派生模型参数,以最小的开销隐式描述变化的局部运动。这两种编码工具在块级别与平移模式竞争,并且仅在RD成本上有优势时才被选择。更重要的是,AV1中的仿射变形限制在小角度,以便它们可以通过水平剪切后跟垂直剪切(图4)在SIMD和硬件中高效实现,每个剪切使用8-tap插值滤波器以1/64像素精度进行。
-
高级复合预测:为AV1开发了一系列新的复合预测工具,使其帧间编码器更加多功能。在本节中,任何复合预测操作都可以为像素 ( i , j ) (i, j) (i,j)概括为: p f ( i , j ) = m ( i , j ) p 1 ( i , j ) + ( 1 − m ( i , j ) ) p 2 ( i , j ) pf(i, j)= m(i, j)p1(i, j)+(1 − m(i, j))p2(i, j) pf(i,j)=m(i,j)p1(i,j)+(1−m(i,j))p2(i,j),其中p1和p2是两个预测器,pf是最终的联合预测,加权系数 m ( i , j ) m(i, j) m(i,j)在[0, 1]中,它们为不同的用例设计,并且可以从预定义的表中轻松生成。[11]
• 复合楔形预测:移动物体的边界通常难以用网格块划分来近似。AV1的解决方案是预定义一个包含16种可能的楔形划分的码本,并在编码单元选择以这种方式进一步划分时,在比特流中信号楔形索引。包含水平、垂直或斜率为±2或±0.5的划分方向的16元形状码本,为正方形和矩形块设计,如图5所示。为了减轻直接并置两个预测器时常产生的杂散高频成分,采用软悬崖形状的2-D楔形掩模来平滑预期划分周围的边缘,即
m
(
i
,
j
)
m(i, j)
m(i,j)在边缘附近接近0.5,并逐渐转变为两端的二进制权重。
• 差分调制掩模预测:像楔形这样的直线划分并不总是有效地分离物体。因此,AV1复合预测器也可以通过两个预测器的值差异来创建非均匀加权。具体来说,p1和p2之间的像素差异用于调制基础值之上的权重。掩模由 m ( i , j ) = b + a ∣ p 1 ( i , j ) − p 2 ( i , j ) ∣ m(i, j) = b+a|p1(i, j)−p2(i, j)| m(i,j)=b+a∣p1(i,j)−p2(i,j)∣生成,其中b控制在差异区域内一个预测器相对于另一个预测器的权重,而缩放因子a确保平滑调制。
• 基于帧距离的复合预测:除了非均匀权重外,AV1还利用考虑帧距离的修改后的均匀权重方案。帧距离定义为两个帧的时间戳之间的绝对差值。它自然表示从不同参考帧复制的运动补偿块的可靠性。当选择基于帧距离的复合模式时,让 d 1 d1 d1和 d 2 ( d 1 ≤ d 2 ) d2 (d1 \leq d2) d2(d1≤d2)代表从当前帧到计算p1和p2的参考帧的距离,整个块将共享一个恒定的权重m。AV1不使用直接的线性加权,而是定义由d1/d2调制的量化权重,这平衡了重构参考中时间相关性和量化噪声之间的权衡。
• 复合inter-intra预测:开发了结合intra预测p1和单参考inter预测p2的复合inter-intra预测模式,以处理新旧内容混合的区域。对于intra部分,支持4种常用的内部模式。掩模 m ( i , j ) m(i, j) m(i,j)包含两种类型的平滑函数:(i)类似于为楔形inter-inter模式设计的平滑楔形掩模,(ii)依赖于模式的掩模,按intra模式的主要方向以衰减模式加权p1。
注解:
(1)扩展参考帧,AV1中允许使用至多7个参考帧,解码图像缓冲区(Decoded Picture Buffer)的容量为8个。
(2)动态空间和时间运动向量,对于时间域,进行运动场估计:(a)存储参考帧索引及其MV;(b)存储通过当前帧当中每个8x8块的时间域MV,这些MV可能是从当前帧后面的帧,穿过当前帧,指向前面的帧;(c)确定当前帧的参考帧,进行时间域MV的投影,这样就能获得时间域的MV。从时间域和空间与共同选出4个MV。
(3)变形运动补偿,允许运动补偿的位置发生形变,不再是常规的矩形区域,不过这种形变程度比较小。
2.4 变换编码
-
变换块划分:与VP9中强制使用固定的变换单元大小不同,AV1允许亮度inter编码块被划分成多种大小的变换单元,这些单元可以通过递归划分来表示,递归深度最多为2级。为了纳入AV1扩展的编码块划分,我们支持从4×4到64×64的正方形、2:1/1:2和4:1/1:4变换大小。对于色度块,只允许使用最大可能的变换单元。
-
扩展变换核:AV1为亮度和色度块定义了更丰富的变换核集合。完整的二维核集合包括16种DCT、ADST、flipADST和IDTX的水平/垂直组合[12]。除了VP9中已经使用的DCT和ADST,flipADST以相反的顺序应用ADST,而恒等变换(IDTX)意味着在某个方向上跳过变换编码,因此对于编码锐利边缘特别有益。随着块大小的增加,一些核开始表现出相似的行为,因此随着变换大小的增加,核集合逐渐减少。
注解:
(1)变换块的大小最小为4x4,最大为64x64。
(2)变换块的形状可以为正方形,2:1/1:2(例如4x8,8x16等),4:1/1:4(例如4x16等),这些形状可以继续向下划分两次。例如当前块的大小为16x64(1:4),其变换块初始大小为16x64,如果继续划分,其大小为2个16x32,再划分,大小为2个16x16,之后不可再分。
(3)AV1中使用了16种变换核,并且每个变换块允许使用不同的变换核
2.5 熵编码
- 多符号熵编码:VP9使用基于树的非自适应二进制算术编码器来编码所有语法元素。AV1转而使用符号到符号自适应的多符号算术编码器。在AV1中,每个语法元素都是特定字母表N个元素的成员,上下文由一组N个概率和计数组成,以便于快速早期自适应。这些概率以15位累积分布函数(CDFs)存储。与二进制算术编码器相比,更高的精度使得能够准确跟踪字母表中不太常见的元素的概率。概率通过简单的递归缩放进行自适应,更新因子基于字母表的大小。由于符号比特率主要由编码系数、运动向量和预测模式决定,所有这些都使用大于2的字母表,这种设计实际上在典型的编码场景中比纯二进制算术编码减少了2倍以上的吞吐量。
在硬件中,复杂性主要由吞吐量和核心乘法器的大小决定,后者重新缩放算术编码状态间隔。跟踪概率所需的更高精度实际上并不需要用于编码。这允许通过从16×15位乘法器四舍五入到8×9位乘法器来大幅减小乘法器的大小。这种四舍五入是通过强制执行最小间隔大小来实现的,这反过来允许简化概率更新,其中值可能变为零。在软件中,操作次数比复杂性更重要,减少吞吐量和简化更新相应地减少了每次编码/解码操作的固定开销。
- 等级图系数编码:在VP9中,编码引擎按照扫描顺序依次处理每个量化变换系数。用于每个系数的概率模型基于先前编码的系数等级、其频率带、变换块大小等上下文。为了在庞大的基数空间中正确捕获系数分布,AV1改为使用等级图设计来进行较大变换系数的建模和压缩[13]。它基于这样一个观察:较低的系数等级通常占主要的比特率成本。
对于每个变换单元,AV1系数编码器首先编码一个跳过符号,如果变换编码没有被跳过,接下来将是变换核类型和所有非零系数的结束位置。然后对于系数值,不是为所有系数等级均匀分配上下文模型,而是将等级划分为不同的平面。较低等级平面对应于0到2之间的系数等级,而较高等级平面处理2级以上的等级。这种分离允许为较低等级平面分配一个丰富的上下文模型,该模型充分考虑了变换维度、块大小和邻近系数信息,以提高压缩效率,同时保持适度的上下文模型大小。较高等级平面使用简化的上下文模型处理3到15之间的等级,并直接使用ExpGolomb编码对15级以上的残差进行编码。
2.6 环路滤波工具和后处理
AV1允许多个环内滤波工具依次应用于解码帧。第一阶段是去块滤波器,它与VP9中使用的基本相同,但有一些小的改动。最长的滤波器从VP9中的15-tap减少到13-tap。此外,现在在信号处理上更加灵活,可以分别为亮度的水平和垂直方向以及每个色度平面设置不同的滤波级别,同时还可以能够在不同的超块之间改变这些级别。AV1中的其他滤波工具如下所述。
- 约束性的方向增强滤波器(CDEF):CDEF是一种细节保留的去环滤波器,设计在去块之后应用,通过估计边缘方向,然后应用一个非可分离的非线性低通方向滤波器,大小为5×5,有12个非零权重[14]。为了避免额外的信号,解码器使用一个规范的快速搜索算法计算每个8×8块的方向,该算法最小化了与完美方向模式的二次误差。
该滤波器仅应用于具有编码预测残差的块。该滤波器可以表示为:
其中 N 包含了
x
(
i
,
j
)
x(i, j)
x(i,j)的邻域像素,非零权重为
w
m
,
n
,
f
(
)
wm,n,f()
wm,n,f()和
g
(
)
g()
g()是下面描述的非线性函数,R(x) 将 x 舍入到最接近的零整数。f() 函数修改待滤波像素与邻居之间的差异,并由两个参数决定,即在 64×64 块级别和帧级别分别指定的强度 S 和阻尼值 D。强度 S 限制了允许的最大差异减去由 D 控制的坡度下降量。g() 函数将待滤波像素 x 的修改限制在 x 与支持区域内任何 x(m, n) 之间的最大差异,以保持滤波器的低通特性。
- 环路恢复滤波器:AV1在CDEF之后添加了一组工具,用于循环内应用,这些工具以互斥的方式在所谓的循环恢复单元(LRU)中选择,LRU的大小可以选择为64×64、128×128或256×256。具体来说,对于每个LRU,AV1允许在两种滤波器中选择其一[15],如下所示。
• 可分离的对称归一化Wiener滤波器:像素通过一个7×7的可分离Wiener滤波器进行滤波,其系数在比特流中信号。由于归一化和对称性约束,每个水平/垂直滤波器只需要发送三个参数。编码器会做出智能优化以决定使用正确的滤波器抽头,但解码器只需根据比特流中接收到的滤波器抽头进行应用。
• 双自引导滤波器:对于每个LRU,解码器首先应用两个轻量化的整数化自引导滤波器,支持大小分别为3×3和5×5,噪声参数在比特流中信号。(注:自引导意味着引导图像与待滤波的图像相同)。接下来,两个滤波器的输出
r
1
r_1
r1和
r
2
r_2
r2,与也在比特流中信号的权重
(
α
,
β
)
(α, β)
(α,β)结合,以获得最终恢复的LRU,公式为
x
+
α
(
r
1
−
x
)
+
β
(
r
2
−
x
)
x + α(r1 − x) + β(r2 − x)
x+α(r1−x)+β(r2−x),其中x是原始的降级LRU。尽管
r
1
r_1
r1和
r
2
r_2
r2本身可能不一定好,但编码器侧适当选择权重可以使最终组合版本更接近未降级的源。
-
帧超分辨率:AV1增加了一个新的帧超分辨率编码模式,允许帧以较低的空间分辨率被编码,然后在更新参考缓冲区之前,在环内规范地超分辨率到全分辨率。虽然已知这些方法在极低比特率下具有感知优势,但图像处理文献中的大多数超分辨率方法对于视频编解码器的循环内操作来说过于复杂。在AV1中,为了保持操作的计算可行性,超分辨率过程被分解为线性上采样,然后以更高的空间分辨率应用循环恢复工具。具体来说,Wiener滤波器特别擅长超分辨率和恢复丢失的高频。唯一的额外规范操作是在使用循环恢复之前进行线性上采样。此外,为了实现成本效益的硬件实现,且在线缓冲区中没有开销,上采样/下采样被限制为仅水平操作。图6描绘了使用帧超分辨率时循环过滤管道的总体架构,其中CDEF在编码的(较低)分辨率上操作,但循环恢复在线性上采样器水平扩展图像以解决部分丢失的高频之后操作。
-
胶片颗粒合成:AV1中的胶片颗粒合成是编码/解码循环之外的应用后处理,它是规范性的。胶片颗粒在电视和电影内容中非常丰富,通常是创作意图的一部分,需要在编码时保留。其随机性质使得用传统编码工具压缩变得困难。相反,在压缩前从内容中移除颗粒,估计其参数,并通过AV1比特流发送。解码器根据参数合成颗粒,并将其添加到重建的视频上。
颗粒被建模为一个自回归(AR)过程,亮度成分最多有24个AR系数,每个色度成分有25个。这些系数用于生成64×64的亮度颗粒模板和32×32的色度颗粒模板。然后从模板的随机位置取出32×32的亮度颗粒块,并将其应用到视频中。通过可选的重叠可以减轻块之间的不连续性。由于胶片颗粒强度随信号强度变化,每个颗粒样本都相应地进行缩放[16]。对于每个颜色成分,缩放是使用分段线性函数建模的。
对于颗粒丰富的内容,胶片颗粒合成显著降低了重建颗粒所需的比特率。由于单个颗粒位置的不匹配,这个工具在第三节的比较中没有使用,因为它通常不会改善客观质量指标。
注解:
(1)约束性方向增强滤波器(CDEF)先进行8个方向的边缘方向评估,根据这个边缘方向来选择一个5x5大小的滤波器,再进行滤波。滤波器仅应用于有预测残差的块。
3.性能对比
我们比较了在AOMedia的开放测试平台AWCY[17]上使用AV1(2018年4月3日版本)获得的编码性能,与最佳libvpx VP9编码器(2018年2月8日版本)和x265(v2.7)获得的性能。这三个编解码器在AWCY objective1-fast测试集[18]上运行,该测试集包括各种分辨率和类型的4:2:0 8位视频:12个普通的1080p视频,4个1080p屏幕内容视频,7个720p视频和7个360p视频,所有视频都有60帧。
在我们的测试中,AV1和VP9以两遍模式使用恒定质量(CQ)速率控制进行压缩,即编解码器在没有指定任何比特率约束的情况下,仅使用单一目标质量参数运行。AV1和VP9编解码器使用以下参数运行:
--frame-parallel=0 --tile-columns=0 --auto-alt-ref=2 --cpuused=0 --passes=2 --threads=1 --kf-min-dist=1000 --kf-maxdist=1000 --lag-in-frames=25 --end-usage=q
使用 --cq-level={20, 32, 43, 55, 63},不限关键帧间隔,以及 --tune-content=screen 来启用AV1的屏幕内容工具。需要说明的是,AV1/VP9两遍模式的第一遍仅仅是进行统计收集,而不是实际编码。
x265,一个将视频编码成HEVC格式的库,也在其最佳质量模式(placebo)下使用恒定速率因子(CRF)速率控制进行测试。x265编码器运行的参数如下:
--preset placebo --no-wpp --tune psnr --frame-threads 1 --minkeyint 1000 --keyint 1000
使用 --crf={15, 20, 25, 30, 35},不限关键帧间隔,以及预设的60帧前瞻缓冲区。请注意,使用上述cq级别和crf值使得三个编解码器产生的RD曲线在BDRate计算的有意义范围内彼此接近。
编码性能的差异在表I和表II中以BDRate表示。负BDRate意味着使用更少的比特来实现相同的质量。PSNR-Y、PSNR-Cb和PSNR-Cr是用于计算BDRate的客观指标。在撰写本文时,不幸的是,在AWCY测试平台上没有实现用于跨Y、Cb、Cr平面平均PSNR的指标,我们将在后续文献中更新结果。表I比较了AV1和VP9,表明AV1在所有平面上显著优于VP9约30%。与x265相比,表II展示了当考虑主要质量因素PSNR-Y时,编码增益一致为23.97%,而在Cb和Cr平面上表现出更出色的编码能力,PSNR Cb/Cr指标中BDRate约为-40%。
致谢
特别感谢所有AOMedia成员和个人贡献者的努力和奉献。由于空间限制,我们仅列出参与起草本文的作者。