一种快速AVS2帧内预测算法

2016-12-31 00:00:00魏荣国尹帅杨昭春
科技创新与应用 2016年14期

摘 要:针对目前AVS2帧内预测编码模式的选择和计算过程相对复杂的问题,提出了一种基于零系数块和底层角度判决的AVS2帧内预测算法。该算法先判断当前子块是否为零系数块,避免对零系数块进行变换等帧内编码的复杂操作。对于非零系数块,通过底层角度判决,从理论上排除了至少40%不可能的预测模式。实验表明,该算法对压缩效率的影响很小,将PSNR下降控制在0.2dB内,平均比特数增加少于2%,编码时间至少减少26%,有效地降低帧内编码的复杂度。

关键词:AVS2;帧内预测;零系数块;编码单元;底层角度判决

1 概述

AVS是我国第一个拥有自主知识产权的音视频编码标准[1]。在高清、超高清等应用需求的推动下,更高压缩效率的视频编码技术迅速发展。在此基础的背景上,2012年,工作组开始准备新一代音视频编码标准的制定工作,截至2014年6月,制定工作基本完成,即(Audio Video coding StandardⅡ,AVS2)。经过测试发现,AVS2的编码效率比第一代标准提高一倍以上,与最新国际标准HEVC(High Efficiency Video Coding)相当[2]。

AVS2采用的关键技术主要有预测编码、变换编码和熵编码等。统计并比较AVS2各部分的编码时间可以发现,帧内预测部分消耗的时间(约35%)在各主要部分中占首位,新技术在提高压缩效率的同时,也显著增加了编码复杂度。

目前针对如何降低视频编码帧内预测的计算复杂度的研究有, 雷海军,危雄,杨张等提出一种基于边缘方向强度检测的快速帧内预测模式决策算法[3],但该算法主要针对HEVC;陈云善,苏宛新,王春霞等提出一种基于(Sum of Absolute Transformed Difference,SATD)准则和空间相关性的快速帧内预测算法[4]来优化帧内预测模式的选择过程;PALOMINO D, CAVICHIOLI E, SUSIN A提出一种基于在编码树块的新检测顺序的快速帧内模式决策算法[5]。文章在结合零系数块的基础上,针对如何降低帧内预测模式,提出一种基于零系数块和底层角度判决的AVS2帧内预测算法。

2 AVS2帧内预测主要结构

AVS2采用四叉树编码结构,从图1中我们可以看到,将一幅图像划分为若干个最大编码单元(Largest Coding Unit,LCU),其最大尺寸为64×64。然后按照四叉树递归的方式可以将LCU划分为各种尺寸的编码单元CU,CU的尺寸可以表示成L×L的样式,L的取值有8,16,32或64。

不同的编码单元可以通过不同的方式划分成预测单元(prediction unit,PU)进行预测编码,在划分PU的形状中,相比AVS1,AVS2增添了一种非对称的划分方法,它只适用于亮度子块,对色度子块则不适用,通过非方形划分方式的引入,大大降低了相互之间的预测距离,使预测精度得到提高,因此又被称为短距离帧内预测(short distance intra predicion, SDIP),如图2所示。

在预测方向上,与AVS1相比,AVS2增加了更多的预测模式。AVS2的每个亮度预测模块运用了33种帧内预测模式,如图3 所示,其中编号3~32属于运用于变化区域的角度预测模式,编号0~2属于运用于平滑区域的非角度预测模式,包括DC、Plane和bilinear三种模式。

为了确定AVS2帧内任何一个LCU下所有的帧内预测模式,不仅需要遍历所有尺寸下的CU,还要对每个CU中任意划分的所有PU进行33种角度预测模式遍历。从遍历的过程可以发现,AVS2的帧内预测计算量非常庞大,同时也造成编码复杂度的提高,如何减少遍历的模式数量和简化计算过程成为研究的重点。

3 零系数块

3.1 零系数块的引出

在AVS2的参考软件中,视频原始信号先通过帧内预测和帧间预测编码获取残差信号,而后通过编码器对残差信号进行一系列的整数变换和量化,对得到的量化系数进行最终的熵编码,对视频信号的编码也随之结束。经实验检验,在全部视频序列中存在着一种特殊的编码模块,其量化系数全部为零,这意味着对零系数块编码没有任何意义,我们称之为全零系数块(Zero Block,ZB)[7]。

零系数块的统计情况如表1所示,不同的码流中零系数块在各自宏块中占有很大的比例,并且随着量化步长的增大而增大。因此寻找一种能够在整数变换之前,利用残差信号的相关信息提前判断出当前子块为ZB的方法成为降低编码复杂度的有效手段。