AVS标准是数字音视频编解码技术标准工作组(AVS工作组)制定的《先进数字音视频编码》标准。AVS工作组成立于2002年,成员包括国内外从事数字音视频编码技术和产品研究开发的机构和企业。AVS工作组的任务是面向我国的信息产业需求,组织制定行业和国家信源编码技术标准。AVS标准的视频部分,已由国家标准化管理委员会正式地批准为国家标准,并于2006年3月1日起实施。
AVS标准包括9部分,其中第2部分视频和第7部分移动视频是视频编码标准。
2003年底完成的AVS标准第2部分主要面向高清晰度和高质量数字电视广播、数字存储媒体和其他相关应用。它具有4大特点:
(1)性能高,编码效率比MPEC-2高2倍以上,与H.264的编码效率相当;
(3)软硬件实现成本都低于H.264;
(4)专利授权模式简单,费用明显低于同类标准。
AVS视频标准采用了与H.264类似的技术框架,包括变换、量化、熵编码、帧内预测、帧间预测、环路滤波等技术模块。AVS视频标准还定义了I帧、P帧和B帧3种不同类型的图像,I帧中的宏块只进行帧内预测,P帧和B帧的宏块则需要进行帧内预测或帧间预测。AVS视频编码器框图如图1-19所示。
图1-19 AVS视频编码器框图
图1-19中S0是预测模式选择开关,在AVS视频标准中,所有宏块都要进行帧内预测或帧间预测。预测残差要进行8×8整数变换(ICT)和量化,然后对量化系数进行zig-zag扫描(隔行编码块使用另一种扫描方式),得到一维排列的量化系数,最后对量化系数进行熵编码。AVS的变换和量化只需要加减法和移位操作,用16位精度即可完成。
AVS使用环路滤波器对重建图像滤波,其优点:一方面可以消除方块效应,改善重建图像的主观质量;另一方面能够提高编码效率。滤波强度可以自适应调整。
1.变换和量化
MPEG-1,MPEG-2,MPEG-4,H.261,H.263等标准使用8×8离散余弦变换(DCT);H.264标准使用4×4整数变换,能够避免正变换和逆变换的不匹配问题;考虑到编码性能、实现复杂度、AVS视频标准的主要应用等多方面因素,AVS视频标准最终选择了8×8整数变换,其变换矩阵T如图1-20所示。
为减少变换和量化过程中取整带来的误差,AVS和H.264都将变换和量化结合在一起进行考虑,与H.264不同的是AVS视频标准中正向和反向缩放都放在编码器端完成,从而减少了解码器的计算量。量化参数QP决定量化步长;在H.264中,QP每增加6,量化步长增加一倍;而在AVS中,QP每增加8,量化步长增加一倍。
图1-20 8×8整数变换矩阵
解码时,水平和垂直方向的反变换公式如下:
H′=X×TT;Y=T×H″
其中,TT是变换矩阵T的转置;X是变换系数矩阵;H′是水平方向反变换的结果,为保证16位精度的操作,将H′的每个系数加4再右移3位,得到H″;Y是垂直方向反变换的结果。最终得到的残差样值ry为
ry=(yy+26)≥7
2.熵编码
AVS视频标准使用k阶(k=0,1,2,3)指数哥伦布码,其结构见表1-2。CBP、宏块模式、运动矢量等用0阶指数哥伦布码编码。量化系数使用全部4种指数哥伦布码,采用2D-VLC编码方法,对量化系数的(run,level)进行编码。AVS视频标准一共定义了19张映射表,映射表选择方法如下:首先根据每个8×8像素块的第1个非0系数选择初始映射表,然后根据当前系数的绝对值决定下一个非0系数使用的映射表。AVS视频标准还定义了新的ESCAPE编码方法,能够获得0.05~0.08dB的编码增益。
表1-2 指数哥伦布码
指数哥伦布码的码字结构非常规则,解码器不需要存储码表。量化系数使用的19幅映射表所需要的存储空间少于2KB。
3.帧内预测(www.xing528.com)
AVS视频标准使用帧内预测技术来提高帧内编码宏块的编码效率,预测时使用当前块的左侧块和上面块中的相邻像素作为参考像素。
H.264分别定义了9种4×4亮度块预测模式,4种16×16亮度块预测模式和4种4×4色度块预测模式;与H.264相比,AVS视频标准的帧内预测以8×8亮度块和色度块为单位,定义了5种8×8亮度块预测模式和4种8×8色度块预测模式(见表1-3和图1-21),大大简化了帧内预测。
表1-3 帧内预测模式
4.帧间预测
AVS视频标准中运动补偿块的大小包括16×16,16×8,8×16和8×8等4种(H.264从16×16到4×4共7种),运动矢量的精度为1/4像素,为得到非整数样本,需要进行插值运算。AVS视频标准定义了两个4抽头FIR滤波器(-1,5,5,-1)和(1,7,7,1),分别用于1/2和1/4亮度样本的插值,插值时首先计算1/2样本,然后计算1/4样本;对色度样本则使用双线性插值得到1/8样本。与H.264使用的6抽头FIR滤波器相比,AVS视频标准的滤波器实现复杂度较低。
图1-21 亮度块帧内预测
在MPEG-1和MPEG-2等标准中:P帧进行前向运动补偿预测,需要一帧参考图像;B帧进行双向运动补偿预测,需要两帧参考图像。因此,解码器需要能存储两帧图像的参考图像缓冲区。考虑到这一点,AVS视频标准允许P帧使用在其之前的连续两个I帧/P帧作为参考图像。在不增加缓冲区大小的前提下提高了编码效率。
AVS视频标准的B帧定义了一种对称模式。在对称模式中,只对前向运动矢量编码,后向运动矢量根据前向运动矢量计算得到。如图1-22所示,后向运动矢量mvBw根据前向运动矢量mvFw以及BlockDistanceFw、BlockDistanceBw两个参数计算得到。由于定义了B帧的对称模式,在AVS视频标准中,B帧的宏块最多只需要对一个方向的运动矢量进行编码;而在MPEC-1和MPEG-2等标准中B帧可能需要对两个方向的运动矢量进行编码。
AVS还定义了加权预测,加权预测在场景变换、照度变化等情况下能显著提高编码效率。AVS视频标准的加权预测采用了简单的线性模型,模型参数在图像头中传输。每一个宏块都可以单独选择是否使用加权预测。
图1-22 B帧对称模式中运动矢量的计算
5.环路滤波
基于块的视频编码很容易造成方块效应,特别是在低码率的情况下。AVS视频标准定义了自适应环路滤波器来消除方块效应,改善重建图像的主观质量,同时可提高编码效率。环路滤波对亮度块和色度块的边界进行(图像和条带边界不滤波)。滤波时首先对块的水平边界滤波,然后再对块的垂直边界滤波。滤波强度由宏块编码模式、量化参数、运动矢量等决定。H.264的环路滤波器滤波时使用边界左右各4个像素(共8个像素);而AVS视频标准只使用左右各3个像素(共6个像素),实现复杂度低于H.264的环路滤波器。AVS视频标准使用的环路滤波器也更有利于并行实现。
6.隔行编码
对隔行扫描视频,图像可按帧或场编码。AVS视频标准允许每幅图像选择按帧编码或是按场编码。如果按场编码,每幅图像的第一场可用前面的场进行预测,第二场可用第一场和前面的场预测。与MPEG-2不同,AVS视频标准中一幅图像的两场使用同一个图像头,但这两场须属于不同的条带。
H.264支持宏块级的帧/场自适应编码,考虑到实现的复杂度,AVS视频标准目前只支持图像级的帧/场自适应编码。
7.伪起始码
AVS视频标准使用的指数哥伦布码可能会造成比特流中出现伪起始码,为避免这种情况,AVS视频标准定义了一种防止伪起始码的方法。编码器生成AVS比特流时,在写入一个字节的第二最低有效位时检查该位前面的连续22位。如果出现22位全“0”,编码器插入比特“10”,这一位成为一个新字节的最高有效位。解码时,解码器从比特流中读入一个新的字节时,检查之前的两个字节和当前字节,如果这3个字节的值是“0x000002”,解码器丢弃当前字节的最低两个有效位。
8.色度格式
AVS视频标准支持4∶2∶0和4∶2∶2两种色度格式;而H.264只是在最新的Fidelity Range Extension中才增加了对4∶2∶2和4∶4∶4等格式的支持。
9.高层语法
目前,MPEC-2已经在数字电视广播等领域得到了广泛应用。考虑到这一因素,AVS视频标准的编码比特流分为视频序列、图像、条带、宏块和块等五层,视频序列、图像和条带等高层语法与MPEG-2的语法类似,这使得AVS编码比特流能够非常容易地与MPEC-2系统层结合。
由于I帧只使用帧内预测编码,因此可以作为随机访问点。MPEG-2中定义了图像组(GOP),解码器可以通过搜索GOP起始码进行随机访问;AVS视频标准则将I帧的起始码定义为与P帧和B帧不同,解码器可以直接搜索I帧的起始码进行随机访问。为解决视频编辑带来的问题,AVS视频标准定义了videoeditcode,用来表示紧跟着I帧的B帧在随机访问时能否正确解码。
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。