最新一代视频压缩标准VP9综述

2016-06-20 07:54袁星范
电视技术 2016年5期
关键词:核心技术

袁星范

(华南理工大学 电子与信息学院,广东 广州 510640)



最新一代视频压缩标准VP9综述

袁星范

(华南理工大学 电子与信息学院,广东广州 510640)

摘要:VP9是一个由谷歌开发的开放格式、无使用授权费的视频压缩标准,并做为谷歌推行WebM工程的一部分。对VP9标准的主要技术特征进行了分析,包括帧内预测、帧间预测、变换和量化、熵编码、环路滤波等,同时与其他先进的视频压缩标准HEVC进行了比较。

关键词:VP9;HEVC;核心技术

1VP9概述

随着网络通信技术的快速发展,网络视频业务的需求日益增长,网络视频数据占据了互联网数据的绝大部分。2010年,谷歌开始推行WebM工程[1],致力于开发下一代开放、免授权费的视频压缩标准VP9。VP9目标之一就是在相同质量下相对于前一代标准VP8可以减少50%的比特率,另一个目标是争取能在压缩效率上超过HEVC。在2012年12月30日,VP9解码器被添加到了Chromium网页浏览器中,2013年2月21日,第一个支持VP9解码技术的谷歌Chroma网页浏览器发布了。

VP9支持的色彩空间标准有:BT.601,BT.709,BT.2020,SMPTE.170,SMPTE.240,sRGB。目前,VP9标准支持4种编码格式设定(profiles):profile 0,profile 1,profile 2,profile 3,profile 0支持8bit色彩深度和4∶2∶0的色度抽样;profile 1支持8 bit色彩深度和4∶2∶0、4∶2∶2和4∶4∶0的色度抽样;profile 2支持10 bit、12 bit色彩深度和4∶2∶0的色度抽样;profile 3支持10 bit、12 bit色彩深度和4∶2∶0、4∶2∶2和4∶4∶0的色度抽样。

2VP9核心技术

2.1帧内预测

2.1.1预测块大小

VP9编码效率的提升很大程度上取决于使用了更大尺寸的预测块。VP9引入了超级块(Super Block)的概念,块大小可达64×64,允许以四叉树形式将64×64的块划分到4×4,所以VP9预测块的大小有13种类型:64×64,64×32,32×64,32×32,32×16,16×32,16×16,16×8,8×16,8×8,8×4,4×8,4×4,具体划分方式如图1所示。

图1 VP9 Super Block的划分

2.1.2帧内预测模式

对于4×4到64×64的像素块,VP9支持10种帧内预测模式:直流(DC),水平(Horizontal),垂直(Vertical),TM(Ture Motion),以及6种角度预测模式,分别为D207,D153,D135,D117,D63,D45,相应角度为207°,153°,135°,117°,63°,45°,如图2所示。

图2 角度模式的预测方向

对1帧图像中的预测块进行帧内预测时,解码时的操作单元都是采用变换块[2](Transform Block,TB)。例如:对于1个16×16的预测块进行帧内预测时,操作单元是4×4的TB块,在这个16×16的预测块区域,采用光栅扫描方式对每一个4×4的TB进行像素值的预测和重构,其中待解码的TB参考已解码TB重构出来的像素值。

2.2帧间预测

2.2.1参考帧选择

VP9目前支持从8个已存储的参考帧中动态地选出3个参考帧来进行帧间预测,分别称为LAST_FRAME,GOLDEN_FRAME,ALTREF_FRAME,在每解码完一帧图像后,需要对这3个参考帧进行更新。在VP9中,有一些已编码的帧,例如ALTREF,仅仅被用来作为参考帧使用,实际解码完成后是不会显示出来的。VP9没有采用可以在前后双向参照的B帧,但引入了复合预测模式,允许存在一些不会被显示的帧,而这些不会被显示的帧可以作为前后其他任意帧的参考,变相地实现了双向B帧。

2.2.2帧间预测模式

对于4×4到64×64的宏块,VP9支持4种帧间预测模式:NEARESTMV,NEARMV,ZEROMV,NEWMV。VP9允许使用一个或两个运动矢量(Motion Vector,MV),影响MV预测值精确程度的一个关键因素是参考MV的选择,VP9建立了一个包含两个矢量的候选参考MV列表,分别称为nearestmv和nearmv。与当前预测块相邻宏块中已编码的MV构成了这两个候选MV,若当前预测块的帧间预测模式为NEARESTMV或NEARMV时,则当前预测块的MV分别对应于候选列表中的nearestmv和nearmv;若当前预测块的帧间预测模式为NEWMV时,则在候选列表中为当前预测块找不到一个合适的MV,此时当前预测块的MV为nearestmv的基础上再叠加一个新的MV;ZEROMV表示当前预测块使用(0,0)这个矢量。

2.2.3亚像素内插

在视频编解码器中,滤波器对亚像素内插十分重要。亚像素位置的亮度和色度像素并不存在于参考图像中,需要利用邻近已编码点进行内插而得。如果MV的垂直和水平分量为整数,则参考块相应像素实际存在。如果其中一个或两个为分数,预测像素则要通过参考帧中相应像素内插获得[3]。VP9中MV最大支持到1/8像素精度,编码以每帧头部信息的标识来确定是使用1/4像素精度还是1/8像素精度。1/8像素精度仅适应于微小的运动,取决于参考MV的量级。对于取样格式为4∶2∶0的色度块预测,MV要求使用1/16像素精度。

在实际的亚像素内插过程中,VP9支持3个8-tap的滤波器,称为EIGHTTAP,EIGHTTAP_SHARP,EIGHTTAP_SMOOTH,以及一个简单的双线性滤波器(Bilinear),每个滤波器为1/16像素精度。对于每一个Super Block,都可以使用这3个8-tap滤波器中的一个来进行滤波,其中EIGHTTAP_SHARP适应于类似屋顶和天空交接这种高对比场景,保留其尖锐边缘部分;EIGHTTAP_SMOOTH适应于相邻帧某处呈现出不一致非自然的尖锐情况,能有效地平缓,节省了空间;Bilinear适应于快速解码的情况。

2.2.4缩放因子

在VP9中,当前帧与参考帧尺寸不一致时,使用一个缩放因子(scale_factor)进行缩放,scale_factor取值范围是[1/16,2]。不同的缩放因子,当前块所用参考帧的像素数据量也不同,同时,scale_factor对亚像素内插过程的计算复杂度也产生重大影响。

2.3变换、量化和扫描

VP9中TB大小分为4×4,8×8,16×16,32×32四种,支持3种变换类型:离散余弦变换(DCT),非对称离散正弦变换(ADST)和哈夫曼变换(WHT)。TB的大小等于或小于预测块大小,例如:预测块大小为4×4时,TB大小只能是4×4;预测块大小为8×8时,TB大小可以是4×4或8×8;预测块大小为16×16时,TB大小可以是4×4或8×8或16×16;预测块大小为64×64时,TB大小可达到32×32。在每一帧的头部信息中都会标识每个预测块允许使用的最大TB大小,或在宏块级信息中会明确标识所用TB的大小。

特别地,对于DCT类型,二维DCT对上述4种TB大小都适应。所有的帧间编码宏块都是采用二维DCT,但对于帧内编码宏块,VP9新增了一种新的变换类型ADST。根据相应的帧内预测模式,ADST可以和一维DCT结合起来形成二维混合变换类型。所以,使用水平和垂直两个方向来进行帧内冗余信号的变换就有4种可能的变换类型:(ADST,ADST),(ADST,DCT),(DCT,ADST),(DCT,DCT)。另外,对于4×4的宏块,VP9支持一种WHT类型,适应于在低量化值时进行无损编码。

量化过程在不降低视觉效果的前提下应尽量减少图像编码长度,减少视觉恢复过程中不必要的信息。VP9提供了8 bit、10 bit、12 bit三个量化表,量化步长决定量化器的编码压缩率和图像精度,量化步长应根据图像实际动态范围实时改变,在编码长度和图像精度之间折衷,以达到整体最佳效果。

VP9有3种扫描方式:default_scan,row_scan,col_scan。根据不同的变换类型选择不同的扫描方式,当变换类型为(DCT,DCT)或(ADST,ADST)时,扫描方式为default_scan;当变换类型为(ADST,DCT)时,扫描方式为row_scan;当变换类型为(DCT,ADST)时,扫描方式为col_scan。具体扫描方法如图3所示(以4×4为例)。

图3 3种扫描方法

2.4自适应熵编码

VP9采用布尔编码(Bool Code)作为底层的算术编码,Bool Code流程如图4所示。一般来说,给定一个n元码表,一棵二进制树就建立起来了,包括1个根节点和n-1个内部节点,0对应着树的根节点,正数表示内部节点的值,负数表示叶子的值。每个节点的概率用8 bit精度表示,范围是[1,255],相应实际概率范围是[1/256,255/256]。通过遍历这棵树的所有节点并利用上下文模型来进行熵编码,称之为Tree Code。在VP9码流中,预测模式、TB的大小、MV和参考帧确定、残差信号都是使用Tree Code进行编码的,如图5所示是以MV的确定来举例说明Tree Code,相比哈夫曼编码,这种编码方式具有更低的码率。

图4 Bool Code 流程

图5 MV的Tree Code

视频内容本质上是不稳定的,因此,对于任何一种编码器,跟踪统计实际编码的各种符号是一种关键机制。目前,大部分的编码器都采用后向更新方法来更新符号的概率,这种方法是基于对每一个已编码好的符号数目进行统计来实现的。若只采用后向更新,由于概率更新时的中间计算量对解码每一个符号来说是必不可少的,所以会影响解码速率。VP9在帧级别结合前向更新和后向更新来更新符号概率,使编码效率和速度达到了一个平衡。

2.5环路滤波

由于VP9中使用了许多尺寸大小为4×4到32×32的TB块,环路滤波就是为了消除边界之间的块效应。经环路滤波处理后得到的重构图像会做为编码或解码时的参考帧,参考帧的准确性直接影响编解码器的性能。环路滤波以Super Block为单位,对一帧图像以光栅扫描方式先在垂直方向进行滤波,再水平方向进行滤波。VP9中有3种不同的滤波器,分别是15-tap平滑滤波器,7-tap平滑滤波器,4-tap自适应阈值模糊滤波器,滤波时对不同大小的TB使用不同的滤波器。

2.6分段

VP9中引入了分段(segment)这个概念,使具有相同属性的Super Block或宏块拥有同一个segment索引号(segment_ID),一帧图像最多有8个不同的segment_ID。对于每一个segment,包含的属性有:量化因子,环路滤波强度,预测时所选用的参考帧、TB尺寸大小和宏块是否为skip模式。在帧级别每一个segment的属性可能会选择性的进行更新,如果没有进行更新,那么这些属性值保持不变直到解码下一帧。总体来说,VP9通过引入segment机制,提供了一套灵活的编码方式,在给定的码率下提高了视频质量。

2.7码流特征

VP9码流除了提供高压缩效率和合适的编码复杂度外,还设计了一些额外的特性用来支持在网络视频传送和播放过程中产生的特殊情况。

2.7.1误码修复

为了在不可靠的网络中进行视频会话时具有低延时性,就需要VP9支持一种编码模式,当有帧在传播过程中丢失时,解码端也能正确地解码。VP9在帧级别提供一个误码修复标识,当有帧丢失时,误码修复标识被激活,会重新发送一个起始帧或重新选择参考帧来保证解码正确。

2.7.2帧级的并行

为了适应多核多线程的硬件发展,VP9的并行解码能力也有所加强。VP9在每一帧的头部信息中包含是否进行并行解码模式的标识,一旦标识被激活,就能实现帧级的并行解码,在高清视频重放系统中,并行处理必不可少。

2.7.3tile并行

VP9除了能进行帧级别的并行外,也支持在一帧中使用多线程。因此,VP9中引入tile的概念,一帧图像可以按列划分为不同数目的tile,每一个tile可以在多线程中进行单独的编码或解码,不会引入任何额外的延时。

3VP9与HEVC比较

HEVC在整体上与VP9类似,都采用相同的四叉树划分机制,混合编码方式,高阶的DCT变换和自适应熵编码等[4]。相比VP9,HEVC更多地体现在实现编码所用的技巧上。HEVC帧内预测模式有35种,而VP9只有10种帧内预测模式;HEVC的预测单元都是正方形的,而VP9的预测单元可以是矩形;HEVC中亚像素内插使用的滤波器有4-tap、7-tap和8-tap三种,帧间预测时还有权重预测和AMVP技术,而VP9亚像素内插使用的滤波器有2-tap、6-tap、7-tap和8-tap四种,帧间预测时没有权重预测和AMVP技术,但多了一个缩放因子的概念;HEVC进行后处理时新增了SAO技术[5-6],而VP9后处理时只有去块滤波器;HEVC有独立进行编码和解码的机制,而VP9只有并行解码机制。

4结束语

VP9在压缩效率上超过了前代VP8和H.264,降低30%~50%的码率即可表现出相同的画质,能以更低的带宽传送高清的画面,和HEVC相差甚少,已具备高效编码的所有特点。同时,VP9使用自由的版权协议,可直接用于包括商用在内的各种用途,也可以对代码进行更改或创新,无须缴纳任何版权许可费,综述所述,VP9的综合优势不言而喻。

参考文献:

[1]BANKOSKI J,KOLESZAR J,QUILLIO L,et al.VP8 data format and decoding guide[EB/OL].[2015-10-20].http://datatracker.ietf.org/doc/rfc6386/.

[2]刘昱,胡晓爽,段继忠,等.新一代视频编码技术HEVC算法分析及比较[J].电视技术,2012,36(20):45-49.

[3]毕厚杰.新一代视频压缩编码标准—H.264/AVC[M].北京:人民邮电出版社,2005.

[4]何海东,董全武,纪琳.H.265/HEVC、VP9、H.264编码算法比较及性能测试分析[J].广播与电视技术,2014,41(10):47-52.

[5]唐华敏,杜建超,王庆雷.新一代视频编码标准HEVC中的环路滤波技术分析[J].电视技术,2014,38(11):1-4.

[6]万帅,杨付正.新一代高效视频编码H.265/HEVC:原理、标准与实现[M].北京:电子工业出版社,2014.

责任编辑:时雯

Overview of latest generation of video compression standard VP9

YUAN Xingfan

(SchoolofElectronicsandInformation,SouthChinaUniversityofTechnology,Guangzhou510640,China)

Abstract:VP9 is an open format and no license fee video compression standard,which is developed by Google,and it is a part of the implementation of the WebM project for Google. In this paper, the main technical features of VP9 standard are analyzed, including intra prediction, inter prediction, transform and quantization, entropy encoding, loop filter, and other advanced video compression standard HEVC are compared.

Key words:VP9;HEVC;core technology

中图分类号:TN919.81

文献标志码:A

DOI:10.16280/j.videoe.2016.05.005

作者简介:

袁星范(1991— ),硕士生,主研基于VP9的数字芯片设计。

收稿日期:2015-11-01

文献引用格式:袁星范.最新一代视频压缩标准VP9综述[J].电视技术,2016,40(5):18-21.YUAN X F. Overview of latest generation of video compression standard VP9[J].Video engineering,2016,40(5):18-21.

猜你喜欢
核心技术
强化核心技术攻关 赋能种植业转型升级——聚焦《“十四五”全国种植业发展规划》
核心技术是厚积薄发的过程
掌握核心技术 赢在精益制造
穿戴式心电:发展历程、核心技术与未来挑战
不忘科创板的初衷
核心技术,造船强国第一要素
移动能源核心技术——薄膜发电及其机遇分析
提升变电站一次检修核心技术的研究
影响规模化猪场收益的核心技术探讨
颠覆式创新: 集汽车级十项核心技术的ROBYF1