新一代通用视频编码H.266/VVC:原理、标准与实现
上QQ阅读APP看本书,新人免费读10天
设备和账号都新为新人

1.2.2 视频编码标准的发展

视频编码的国际标准化过程始于20世纪80年代早期,至今已经走过了将近40个年头。图1.3给出了主流视频编码国际标准的发展历程。在H.266/VVC出现之前,H.264/AVC和H.265/HEVC在相当长的时间内占据了主导地位。H.264/AVC诞生后,国际标准组织围绕该标准进行了可伸缩视频编码(Scalable Video Coding, SVC)和多视点视频编码(Multiview Video Coding, MVC)等扩展。H.265/HEVC制定完成后,也在可伸缩、多视角、三维、屏幕内容等方面进行了扩展,以适应更广的应用范围。目前最新的H.266/VVC标准已经正式完成,其扩展正在高动态范围、高比特位深、基于神经网络编码等多个方面进行探索。

2002年6月,我国原信息产业部科学技术司成立了“数字音视频编解码技术标准工作组”(简称AVS工作组),制定了具有自主知识产权的音视频编码标准AVS。2006年2月,国家标准化管理委员会(SAC)发布通知:《信息技术 先进音视频编码 第2部分:视频》于2006年3月起实施,AVS视频编码部分正式成为国家标准。随着广电高清数字广播的发展,2012年3月,工业和信息化部电子信息司与国家广播电影电视总局科技司联合发文共同成立“AVS技术应用联合推进工作组”;2016年12月,工作组完成了第二代视频编码标准AVS2;2019年6月,工作组完成第三代视频编码标准第一阶段标准(AVS3 Phase 1);2021年4月,工作组完成AVS3第二阶段标准(AVS3 Phase 2)。

图1.3 主流视频编码国际标准的发展历程

除国际、国内标准外,视频编码领域的另一大热点是开放式标准。在谷歌的主导下,开放媒体联盟(Alliance for Open Media, AOM)于2015年成立,其致力于开发开放式、无版权费的视频编码标准。在开源编解码器VP9的基础上,2018年底,AOM完成了AV1视频编码格式(标准),其性能优于x265编码器。目前,AOM正在组织开发下一代视频编码标准AV2。

1.H.26x系列标准

(1)H.261标准。

H.261标准[5]是ITU-T在1990年制定的一个数字视频编码标准,其制定目的是能够在带宽为64kbit/s倍数的综合业务数字网(Integrated Services Digital Network, ISDN)上传输质量可接受的视频信号,它被称为一种p×64kbit/s的编解码器(p为1~30)。此时H.261标准主要针对的应用是基于ISDN的视频通信应用,如可视电话、视频会议等。

由于世界各国采用的电视制式不同,主要有PAL(Phase Alternating Line)和NTSC(National Television System Committee)两大类,要在这些国家之间建立可视电话或视频会议业务,是不能直接使用电视信号进行传输的。因此,H.261标准提出一种通用的中间格式视频(Common Intermediate Format, CIF)来解决上述问题。CIF格式视频的空间分辨率为352×288,帧率为30fps,可以很方便地转化为PAL和NTSC制式的电视信号。另外,H.261标准也可处理QCIF(Quarter CIF,分辨率为176×144)的视频,主要面对的是更低带宽下视频传输的应用。

H.261标准主要采用的编码方法包括基于运动补偿的帧间预测、离散余弦变换(Discrete Cosine Transform, DCT)、量化、zig-zag扫描和熵编码等。这些编码技术组合在一起就形成了沿用至今的混合编码(Hybrid Coding)框架,可以认为H.261标准是混合编码标准的鼻祖。

(2)H.263标准。

H.263标准[6]由ITU-T制定,最初是针对低码率的视频会议应用而设计的。后期应用证明,H.263标准视频编码并不局限于低码率传输环境,还适用于很大范围的动态码率。H.263标准最初为H.324系统设计,进而成功应用于基于H.323标准的视频会议系统,以及基于H.320、RTSP(Real Time Streaming Protocol)和SIP(Session Initiation Protocol)标准的视频通信系统。

H.263标准仍然以混合编码框架为核心,其基本原理、原始数据和码流组织都与H.261标准十分相似。同时,H.263标准也吸收了MPEG系列标准等其他一些国际标准的技术,如半像素精度的运动估计、PB帧预测、无限制运动矢量和8×8块的帧间预测等。通过使用这些当时最先进的编码技术,H.263标准的编码性能有了革命性的提高。当时,H.263标准在所有测试码率下的性能均优于H.261标准。在很长一段时间里,H.263标准是各大相关厂商必须支持的标准之一。

在H.263标准的发展中,出现了两个具有增强功能的改进版本,分别是H.263+标准[7]和H.263++标准[8]。H.263+标准也叫作H.263v2标准。相比H.263标准,H.263+标准允许更多的图像输入格式,拓宽了视频编码的范围;采用了帧内预测及去块效应滤波,提高了压缩效率;增加了时间分级、信噪比和空间分级,提高了视频信号传输的有效性,增强了视频传输的抗误码能力。

H.263++(也称H.263v3)标准在H.263+标准的基础上增加了附加选项(Annex)U(增强型参考帧选择)、V(数据分片)和W(补充信息)来提高码流的抗出错性能(Error Resilience),这些措施同时提高了编码效率。

2.MPEG系列标准

(1)MPEG-1标准。

MPEG-1标准[9]是MPEG制定的第一个视频和音频有损压缩标准,也是最早推出及在市场上应用的MPEG技术。当初,它主要是针对数字存储媒体(如CD光盘),记录活动图像及其伴音的编码方式。MPEG-1标准后来成为影音光碟VCD(Video CD)的核心技术,其数据编码输出速率定位为1.5Mbit/s,在这个码率下它的编码质量与传统录像机相当。由于编码能力的限制,MPEG-1标准对运动较快的视频信号进行编码会产生“马赛克”现象,因此较为适合运动适中或较慢的视频内容。MPEG-1标准可以实现传统磁带式录像机的各项功能,包括存取、正放、快进、快退和慢放等功能,曾成功应用于卡拉OK、VCD影音光碟及视频点播(Video On Demand, VOD)等多种音像系统。

(2)MPEG-2标准。

MPEG-2标准[10]是继MPEG-1标准制定之后由MPEG推出的音视频编码标准,于1994年面世。MPEG-2标准的应用领域包括卫星电视、有线电视等,经过少量修改后,成为广为人知的DVD产品的核心技术。前面曾提到,MPEG-2视频编码标准(MPEG-2标准第2部分)事实上是由MPEG和ITU-T联合制定的,ITU-T的H.262与MPEG-2视频编码标准是完全相同的。不过,MPEG-2标准是人们更为熟悉的名称。

比较特别的是,MPEG-2视频编码标准中开始引入了档次(Profile)和等级(Level)概念,能够针对不同应用要求进行编码模式的选择。MPEG-2标准按编码图像的分辨率分为4个“等级”,按不同的编码复杂程度分为5个“档次”。“等级”与“档次”的若干组合构成MPEG-2视频编码标准在某种特定应用下的子集:对某一输入格式的图像,采用特定集合的编码工具,产生规定速率范围内的编码码流。

(3)MPEG-4标准。

MPEG-4标准[11]在1998年11月被ISO/IEC正式批准,于1999年被正式命名为ISO/IEC 14496国际标准。相比于MPEG-1标准和MPEG-2标准,MPEG-4标准涵盖的内容非常丰富,它包括31个部分(Parts)。MPEG-4标准的不同部分分别定义了系统、音视频编码、多媒体传输集成框架、知识产权管理、动画框架扩展和3D图形压缩等内容,其中第10部分就是著名的H.264/AVC标准。MPEG-4标准支持面向对象编码,面向的应用包括数字电视、动画、影音合成、网页浏览和交互式多媒体等。它将众多多媒体应用集成在一个完整框架内,旨在为各类多媒体通信及应用环境提供标准算法及工具,从而建立起一种能被多媒体传输、存储、检索等应用领域普遍采用的统一数据格式。

(4)H.264/AVC标准。

H.264/AVC标准[12]是由ITU-T的VCEG和ISO/IEC的MPEG组成的联合视频组(Joint Video Team, JVT)共同开发的数字视频编码标准,也称ITU-T H.264建议和MPEG-4第10部分先进视频编码(Advanced Video Coding, AVC)标准。

H.264/AVC标准仍然沿用了混合编码的理念,此框架支持了许多先进的编码技术,如具有方向性的帧内预测、多参考帧的运动补偿、灵活分块的运动补偿、可用于预测的B帧、4×4/8×8的整数DCT变换、环路去方块滤波和自适应熵编码等。H.264/AVC标准还提供了一系列增强视频编码鲁棒性的编码方式,如数据分割、灵活宏块顺序等。这些编码方式均在H.264/AVC标准中的视频编码层(Video Coding Layer, VCL)进行规定。除VCL外,H.264/AVC标准还定义了网络抽象层(Network Abstraction Layer, NAL),通过NAL单元,将H.264/AVC标准中的VCL码流数据与下层传输协议有机“黏合”。

由于采用了先进的编码技术,H.264/AVC标准获得了远超以往标准的编码性能。在相同重建视频质量条件下,H.264/AVC标准比H.263+、MPEG-4(SP)标准减少了约50%的码率。同时,H.264/AVC标准具有非常好的网络适配性和抗出错性能,因此适用于各类交互式网络视频应用。H.264/AVC标准的优秀压缩性能也保证了它在视频存储、广播和流媒体等领域的广泛应用。不过,这些优秀的性能都来自复杂的编码方式,因此H.264/AVC标准的复杂度也较以往编码标准高出许多。

(5)H.265/HEVC标准。

H.265/HEVC标准[13-14]也是由ITU-T的VCEG和ISO/IEC的MPEG组成的联合视频组JVT共同开发的数字视频编码标准,也称为ITU-T H.265建议和ISO/IEC 23008-2高性能视频编码(High Efficiency Video Coding, HEVC)标准,简称为H.265/HEVC标准。

H.265/HEVC标准沿用了混合编码框架,支持更多先进的编码技术,如四叉树编码单元划分结构、35种帧内预测模式、运动信息融合技术、先进的运动矢量预测技术、自适应变换技术、像素自适应补偿技术等。H.265/HEVC标准还进一步进行了扩展,如支持更高的比特深度(Bit Depth)、4:4:4色度采样视频、多视角HEVC(Multiview High Efficiency Video Coding)、可伸缩HEVC(Scalable High Efficiency Video Coding)、3D HEVC(3D High Efficiency Video Coding)、HEVC屏幕内容编码HEVC-SCC(Screen Content Coding)等。

由于采用了先进的编码技术,H.265/HEVC标准获得了远超以往的编码性能。在相同重建视频质量条件下,H.265/HEVC标准比H.264/AVC标准减少了约50%的码率。

3.AVS系列标准

《信息技术 先进音视频编码 第2部分:视频》[15](简称AVS1-P2)是第一个AVS视频标准,于2006年2月颁布。AVS1-P2针对标清和高清视频进行编码工具的优化,在编码性能与编解码复杂度之间实现了较好的平衡。AVS1-P2标准采用了16×16的宏块结构,帧内预测块的尺寸设置为8×8,采用了5个帧内预测模式进行帧内预测;帧间预测块的尺寸可为16×16、16×8和8×16,可以采用两个前向参考帧或前后各一个参考帧进行帧间预测。为了进一步降低复杂度,AVS1-P2采用4抽头滤波器进行1/2帧间预测插值及采用2抽头滤波器进行1/4帧间预测插值;变换块和环路滤波器尺寸设置为8×8,并且采用自适应2D变长码(Variable Length Coding, VLC)进行熵编码。此外,AVS1-P2还引入增强直接模式和对称模式,用于双向编码帧(B帧)的模式编码和运动信息(包含运动矢量及参考帧索引值)编码,兼顾了低复杂度和高效编码的需求[16]。经国家广播电视总局、工业和信息化部测试机构测试,AVS1-P2编码效率比MPEG-2提高1倍以上[17]

在AVS1-P2的基础上,AVS标准工作组与中央电视台、国家广播电视总局针对广播电视高清视频的需求联合制定了广电行业标准《广播电视先进音视频编解码 第1部分:视频》(简称AVS+)[18],并于2012年7月获批成为行业标准。AVS+相比于AVS1-P2增加了高级熵编码、加权量化和增强场编码3类编码工具,显著提升了AVS在广播电视视频内容方面的主观和客观质量。目前,AVS+标准已经广泛应用于中央电视台及多个地方电视台标清和高清电视节目的播放[17]

随着视频内容分辨率由高清向4K过渡,以及视频内容比特位宽由8bit演进为10bit,中国视频产业界对视频编码效率的要求日益增长。因此,AVS标准工作组于2012年启动第二代AVS视频编解码标准制定工作(简称AVS2-P2),2016年5月和12月,AVS2-P2分别被颁布为行业标准和国家标准[18-19]。AVS2-P2相比AVS1-P2和AVS+做了全面的技术升级。AVS2-P2将编码单元尺寸由16×16扩展为64×64,并采用了四叉树编码单元划分结构进行块划分;帧内预测模式由5种模式扩展为33种模式,并采用短距离帧内编码技术(Short Distance Intra Prediction, SDIP)和1/32精度帧内插值技术;帧间预测过程采用非对称帧间预测块划分、8抽头帧间插值滤波器、F帧技术,其中F帧是一种采用双前向参考技术的特殊P帧[20]。在变换技术领域,AVS2-P2标准采用4×4、8×8、16×16、32×32的方形块变换,以及16×4、4×16、32×8、8×32的非方形块变换(Non-Square Transform),并且将LOT(Logical Transform)技术应用于64×64系数块,以及将二次变换(Secondary Transform)应用于帧内预测残差[20]。在系数编码方面,两级系数编码策略及系数组的概念被引入AVS2-P2标准。为了增强环路滤波的性能,AVS2-P2还采纳了像素自适应补偿和自适应滤波技术。此外,为了有效提升视频监控场景的编码压缩性能,AVS2-P2还采用背景帧和背景建模技术,背景帧可以看作一类特殊的长期参考帧技术。

得益于AVS2-P2技术的全面升级,在广播电视应用场景中,其比AVS1-P2编码压缩性能提升了1倍,与H.265/HEVC编码压缩性能相当。在监控场景中,AVS2-P2编码性能可超过H.265/HEVC。目前,AVS2-P2标准已应用于中央电视台和部分地方电视台4K广播频道的音视频播放[17]

第三代AVS3视频编解码标准(AVS3-P2)于2017年12月启用,于2019年6月完成AVS3-P2第一阶段标准(AVS3-P2 Phase 1)的制定,于2021年4月完成AVS3-P2第二阶段标准(AVS3-P2 Phase 2)的制定。AVS3-P2两个阶段标准版本分别反映了在不同应用场景下的编解码需求。AVS3-P2 Phase 1针对较低复杂度应用,在编码性能与编解码实现复杂度上进行了较好的平衡。根据相关文献的测试[21],AVS3-P2 Phase 1比AVS2-P2在4K分辨率方面有超过25%的性能提升,解码复杂度增加幅度可控制在合理的范围内。AVS3-P2 Phase 2则面向高编码压缩性能的应用,其目标性能与H.266/VVC基本持平。

AVS3-P2 Phase 1标准化过程中侧重于筛选对解码器实现影响较小的编码工具。在块结构方面,Phase 1标准的编码块尺寸由64×64扩展为128×128,并使用四叉树(Quad Tree)+二叉树(Binary Tree)+增强四叉树(Enhanced Quad Tree)的方法进行块划分标识。帧内预测的模式数仍与AVS2-P2保持一致,但引入了新的帧内滤波技术及跨亮度分量的色度预测编码技术(Cross-Component Prediction Mode)[22]。帧间预测和编码过程引入了仿射变换、基于历史的运动矢量预测、多精度运动矢量编码及新型的运动矢量和运动矢量差表示技术[22]。在变换编码技术领域,AVS3-P2 Phase 1标准采用了基于位置的变换组合技术,可根据变换块的位置从DCT-II型、DCT-VII型、DST-VII型(Discrete Sine Transform, DST)选择合适的变换对[22]。考虑到实现复杂度,AVS3-P2 Phase 1标准的系数编码技术替换为基于游程编码的系数编码方案,大幅降低了系数编解码的实现代价。此外,AVS3-P2 Phase 1标准设计了大跨度编码技术(Cross-rap)用于提升监控类视频场景的编码质量[23]

AVS3-P2 Phase 2标准则在AVS3-P2 Phase 1的基础上引入了更多对编码性能提升有帮助的工具。帧内编码的预测模式数由33种扩展为65种,并采用非方形的帧内预测块划分技术。帧间预测和编码过程引入了解码端导出运动信息及修正运动信息的技术,并将滤波技术应用于帧间预测块的获取过程,以及采用了更灵活的帧间预测块划分形状(非方形),扩展了运动矢量和预测模式的编码方式。在滤波技术上,AVS3-P2 Phase 2标准亦有较多扩展,增强像素自适应补偿、跨分量的像素自适应补偿及自适应滤波改进技术均被采纳到标准中。系数编码技术领域则新设计了多假设概率模型熵编码和基于扫描区域的系数编码方案,用于提高系数编码的性能[24]。除此以外,AVS3-P2 Phase 2标准还针对屏幕内容编码引入了新的编码工具,主要涉及帧内块复制(Intra Block Copy, IBC)、串匹配(String Matching)、跳过变换块(Transform Skip)和环路滤波器条件修改4类技术[25]。AVS3-P2 Phase 2标准是第一个将屏幕内容编码工具标准化的AVS标准,其编码性能与H.266/VVC标准的屏幕内容编码性能基本相当。

4.AOM标准

(1)开放媒体联盟。

2015年9月,谷歌、微软、Netflix等多家科技巨头创立了开放媒体联盟AOM,旨在通过制定全新、开放、免版权费的视频编码标准和视频格式,以创建一个持久的生态系统,为下一代多媒体体验创造新的机遇。截至2021年6月,AOM已经拥有48家会员单位,包括14家理事会成员单位(Founding Members)和34家Promoter会员单位。这些会员单位涵盖了从采集制作、传输分享到播放消费的视频完整生态系统,包括:流媒体平台,如YouTube、Netflix、Facebook、腾讯视频等;浏览器供应商,如谷歌(Chrome)、苹果(Safari)、微软(Edge)及Mozilla(Firefox);硬件制造商,如Intel、AMD、NVIDIA、ARM、SAMSUNG、Xilinx、Broadcom、华为等;云服务商,如北美的亚马逊(AWS)、微软(Azure)、谷歌(GCP)、IBM,以及中国的阿里(阿里云)、腾讯(腾讯云)、金山云、华为(华为云)等;同时包括思科等网络与系统提供商。

(2)AV1标准历程。

2010年,谷歌启动开源项目WebM,旨在为互联网视频提供开源解决方案。同年,谷歌收购了专注视频编解码的On2公司,并开源了VP8编解码方案。

2011年11月至2013年7月,谷歌研发了开源的VP9编码标准,在不同测试条件下,VP9的性能与HEVC相当[26]或低于HEVC[27]

2014年起,谷歌开始了VP10编码标准的研发工作。到2015年底,VP10的性能已经比VP9高出15%~20%。不过,随着2015年9月AOM的成立,谷歌就停止了VP10的研发工作,而后AOM开始了AV1标准的研究。

2018年6月,AOM发布了其首款免版权费、开源的视频编码格式AV1。AV1沿袭了传统混合视频编码框架,它始于同样免版权费、开源格式的VP9的衍生版本,同时采纳了Google VP10、Mozilla Daala、Cisco Thor共3款开源编码项目中的技术成果。2018年6月,AV1封稿。AV1相比其前身VP9,共推出了100多个新的编码工具,在压缩效率方面显著优于同期的编码器,在实现方面也考虑了硬件可行性和后续可扩展性。

(3)AV1编码工具[26]

编码块的划分:在VP9中,划分树有4种方法,尺寸从最大的64×64开始,一直可以递归到4×4,不过,可独立选择帧内/帧间模式及参考帧的最小单元为8×8。AV1不仅将划分树扩展到了10种结构,还将最大的分块尺寸(AV1的Superblock)扩大至128×128。值得注意的是,这10种结构中包括4:1/1:4的矩形划分,并且这种矩形划分是不可再分的。同时,对于8×8及以下的编码单元,AV1允许每个编码单元有独立的帧内、帧间模式和参考帧选择。

帧内预测:AV1使用了多种不同的方法进行帧内预测,在方向预测上,AV1在VP9的8个角度的基础上,增加了48种模式,即共有56种方向模式。另外,AV1提供了4种无方向的帧内模式,它们分别是DC_PRED、SMOOTH_PRED、SMOOTH_V_PRED和SMOOTH_H_PRED。在预测方法上,AV1支持基于递归滤波的预测和根据亮度来预测色度(Chroma from Luma,CfL)。此外,AV1提供了块复制(IntraBC Mode)、调色板模式(Pallette Mode)等适用于屏幕内容编码的特定工具。

帧间预测:VP9允许在至多3个候选参考帧中选择1~2个作为参考,然后进行基于块平移的运动补偿,当编码块有两个参考帧时,取这两次预测的平均值作为该编码块的最终预测值。AV1将每个编码帧的候选参考帧数量扩展到7个,使用复杂的参考帧结构来挖掘时域帧之间的相关性,以达到最大可能的压缩性能,并满足不同的应用需求。在预测中,AV1支持单帧帧间预测和复合帧间预测方法(如Wedge预测、Mask预测、基于帧距离的预测、帧内和帧间混合预测),以及可变块大小的重叠块运动补偿(Overlapped Block Motion Compensation, OBMC)、仿射运动补偿(包括全局仿射与局部仿射,分别应对相机移动和局部运动)。

变换编码:为支持上述丰富的块划分方式,AV1能够完成尺寸从4×4到64×64的正方形及2:1或1:2、4:1或1:4的长方形的变换,由水平方向和垂直方向的4种一维变换基共可以组合成16种可分离变换基。这4种一维变换基通常适用于不同的内容:离散余弦变换(DCT)适用于压缩常规的自然信号,对于尖锐的边缘可以不进行变换(IDTX),而非对称离散正弦变换(ADST)或翻转非对称离散正弦变换(flip-ADST)对残差能量单调变化的情况非常有效。为了最大化编码效率,AV1针对不同的变换块尺寸和预测模式,定义了不同的变换基选择范围。

熵编码:VP9中所用的熵编码是基于二叉树的布尔非自适应二进制算术编码,AV1则使用了符号间自适应多符号算术编码器,与纯二进制算术编码相比,多符号熵编码能够使吞吐量降低50%以上。

环路滤波:AV1中包括3种环路滤波工具,分别是去块(Deblock)滤波器、受约束的方向增强滤波器(Constrained Directional Enhancement Filter, CDEF)和环路恢复(Loop Restoration, LR)滤波器。其中,CDEF旨在保留方向细节;LR滤波器又包括两个可开关的滤波器,即Wiener滤波器和Self-Guided滤波器,旨在对图像进行去噪或边缘增强。

AV1还采用了一种超高分辨率编码模式,该模式允许将高分辨率的编码帧进行横向下采样得到低分辨率帧再进行编码,在更新参考帧缓冲区前,通过上采样及环路恢复滤波将低分辨率帧恢复至高分辨率图像。

此外,电影或电视场景中的颗粒通常是创作内容的一部分,为在压缩中能够保留这些颗粒,AV1提供了一种胶片颗粒合成的后处理技术:编码前,将颗粒从编码帧中删除,仅在码流中传输相关参数;解码时,通过解析相关参数再合成颗粒,并添加到视频内容中。