刘妍君,赵志强,刘 艳,崔 盈,汪大勇,冉 鹏,郭毅军
(1.重庆邮电大学 生物信息学院,重庆 400065; 2.日照职业技术学院 电子信息工程学院,山东 日照 276800;3.重庆邮电大学 自动化学院,重庆 400065)(*通信作者电子邮箱3927545@qq.com)
可伸缩高性能视频编码(Scalable High efficiency Video Coding, SHVC)是在高效视频编码(High Efficiency Video Coding, HEVC)基础上开发的新一代视频压缩编码标准。与之前的标准相比,可伸缩编码可以解决异构型网络和终端多样性的问题[1-2]。可伸缩视频编码可以通过简单的丢包或截断码流等操作扔掉部分比特流形成一个新的子比特流,该子比特流能够适应用户的爱好、终端能力和网络的状态[3]。虽然SHVC具有很高的编码效率,但是其编码复杂度也非常高,这就严重阻碍了SHVC的广泛应用。因而,研究SHVC的快速算法具有重要意义。可伸缩视频编码主要包含时间、空间和质量可伸缩三种类型,质量可伸缩型视频编码能够根据网络状态提供不同的显示质量,具有很强的适应性[4]。
为了提高帧内视频的编码速度,很多学者对HEVC和基于H.264先进视频编码(H.264/Advanced Video Coding, H.264AVC)的可伸缩视频编码(Scalable Video Coding, SVC)进行了研究。在HEVC的帧内快速算法中,主要通过自身特征和相关性进行研究。由于编码信息跟自身特征有着密切联系,因而根据自身特征进行研究必然能够显著提高编码速度。对此,文献[5]通过研究边缘信息预测可能的方向模式以提高编码速度。方向模式跟纹理有着密切联系,根据纹理特征预测可能的方向模式必然能够提高编码速度。对此,文献[6]首先对每个编码单元(Coding Unit, CU)计算梯度方向并得到梯度模式柱状图,然后根据柱状图的分布特征预测可能性较大的模式,排除可能性较小的模式以提高编码速度。由于视频序列存在着较强的时间和空间相关性,所以根据相关性预测必然能够提高编码速度。对此,文献[7]利用前一帧编码单元的方向模式及当前帧相邻单元的方向模式预测当前单元可能的方向模式,排除可能性较小的方向模式;文献[8]利用空间相关性进行预测,根据相邻编码深度预测当前的编码单元深度,排除可能性较小的编码深度以提高编码速度;文献[9]利用深度相关性进行预测,通过前一帧深度编码单元和当前深度编码单元的帧内模式预测当前编码单元是否需要编码下一深度,如果当前编码单元及前一帧编码单元的帧内模式相同,则当前编码单元不需要编码下一深度。利用率失真值也是一种有效的提前终止方法,文献[10]通过实验研究了下一深度的编码来估计率失真值,通过与当前深度的率失真值进行比较决定是否需要编码下一深度;文献[11]研究了编码单元率失真值的分布规律,然后利用贝叶斯理论研究当前单元率失真值与提前终止及划分率失真值的关系,并在此基础上研究了深度提前终止及划分判断条件。
在基于H.264/AVC的质量可伸缩视频编码中,增强层(Enhancement Layer, EL)通过采用较小的量化参数来实现质量可伸缩。由于增强层采用较小的量化参数,因而采用帧内(Intra16)模式的比例很少,对此文献[12-13]通过排除Intra16模式以提高编码速度;但是当视频序列比较简单时仍然会有一定比例的宏块采用Intra16模式,简单地排除Intra16模式可能会严重影响编码效率。对此,文献[14]首先提出仅当基本层(Base Layer, BL)采用帧内(Intra4)且增强层量化参数小于30时不采用Intra16模式,然后根据基本层块的方向模式预测当前块可能的方向模式,排除可能性较小的方向模式以提高编码速度。该算法利用层间相关性对块模式和方向模式进行预测,进一步提高了编码速度;但是仅利用层间相关性进行预测,对相关性利用不充分,而且没有采用提前终止以进一步提高编码速度。
虽然以上算法能够显著地提高HEVC或者SVC的视频编码速度,但是HEVC没有基本层无法利用层间相关性进行预测,SVC和SHVC也存在着较大的差异,因而需要根据SHVC的具体特征研究相应的快速算法。
由于SHVC是一个新的视频编码标准,目前关于质量SHVC的研究成果很少。文献[15]利用基本层的运动向量预测增强层编码单元的运动搜索范围,从而减小搜索范围;然后再利用相邻编码单元及其基本层对应编码单元的率失真值研究当前编码单元的率失真门限值,当满足条件时提前终止编码单元的选择以提高编码速度。文献[16]首先研究当前编码单元与基本层对应单元的关系,在此基础上预测可能性较大的编码单元、排除可能性较小的编码单元以提高编码速度。文献[17]首先研究当前编码单元与相邻单元的关系,在此基础上预测可能性较大的编码单元、排除可能性较小的编码单元以提高编码速度。文献[18]首先利用基本层编码单元块深度值预测增强层编码块的深度范围,跳过一部分的深度值搜索,再利用当前预测单元与时间、空间以及父辈相邻预测单元(Prediction Unit, PU)之间的相关性判断当前编码区域的复杂度,从而选择预测模式。这些算法虽然能够提高质量可伸缩高性能视频编码(Quality Scalable High efficiency Video Coding, Quality SHVC)的编码速度,但是都只对编码深度进行研究,在划分模式上的研究还不够深入,从而影响了编码速度的进一步提高。
对此,本文首先利用层间相关性预测可能的编码深度;然后在可能的深度中,采用层间预测(Inter-Layer Reference, ILR)模式进行编码,如果编码得到的残差满足提前终止条件时则直接跳过帧内模式,否则需要继续采用帧内模式进行编码;最后对深度编码得到的残差进行判断是否满足提前终止条件,如果满足则终止编码,否则还要采用下一深度进行编码。本文工作包括:1)结合层间相关性程度预测可能的深度;2)根据增强层模式的分布特征跳转帧内(Intra)模式;3)根据残差系数的分布特征研究深度提前终止的判断条件。
通过实验研究质量可伸缩的编码规律,而为了满足不同的分辨率,本文分别采用B、C、D和E格式的测试序列,B中采用Sunflower和Tractor序列,C中采用Flowervase和PartyScene序列,D中采用BlowingBubbles和RaceHorses序列,E中采用Park和Town序列。这些序列包含了运动和纹理从简单到复杂,具有代表性。量化参数采用了通用测试条件CSTC(Common SHM Test Conditions)[19]基本层BL的量化参数(Quantization Parameter, QP),设置为(26,30,34,38);而对应的增强层EL的QP设置为(22,26,30,34)和(20,24,28,32),实验结果表明这两组参数的性能相似,所以本文以QP(22,26,30,34)为例进行测试。
质量SHVC中的基本层和增强层具有相同的空间分辨率和帧率,因此它们之间存在着很强的层间相关性。所以,当基本层与增强层之间深度越相似时,当前编码单元采用基本层编码单元深度的可能性越大,反之越小。如果基本层编码单元深度为0,则当前单元深度采用0的权值为4,采用1的权值为3,采用2的权值为2,采用3的权值为1。由于层间相关性程度对深度分布有着重要的影响,则层间相关性程度的计算如下:
γ=(|BL-L|+|BUL-UL|+
如利用教材九年级化学上册第53页表3-1,教师设置问题:(1)原子有什么共同点、不同点?(2)有什么独特的地方?(3)存在什么规律?
|BU-U|+|BUR-UR|)/4
(1)
其中:BL表示基本层中左边编码单元的深度;L表示增强层中左边编码单元的深度;BUL表示基本层中左上编码单元的深度;UL表示增强层中左上编码单元的深度;BU表示基本层中上方编码单元的深度;U表示增强层中上方编码单元的深度;BUR表示基本层中右上编码单元的深度;UR表示增强层中右上编码单元的深度;γ为相关性程度。为了研究层间相关性程度与层间深度差值分布的关系,本文采用上述实验条件对8个视频序列进行测试并取平均值,得到层间相关性程度与层间深度差值分布的关系如图1所示。
从图1中可以看到,层间深度的差值为0的比例变化很大,其他差值的比例不是很大。为了简单起见,对于差值不为0的深度(即与对应基本层深度不同的深度)的权值,采用初始权值;对于差值为0的深度(即基本层对应单元深度)的权值为初始权值乘以权重(4-r),权值的计算如式(2)所示:
(2)
即当基本层的编码单元深度不等于增强层的编码单元深度时,W1=W0;当基本层的编码单元深度等于增强层的编码单元深度时,W1=(4-r)W0。通过以上方式得到各个深度的权值按照大小排序为W0、W1、W2、W3,并且计算每一深度值在整个权值中的比例,取比例较大的权值,而忽略比例小的权值。具体如下:
(3)
其中:rk为前k+1个深度权值之和与整个权值之和的比例。为了保证编码效率,需要对不同rk值对应的准确率进行研究。r0取不同值时的准确率如表1所示。
图1 层间相关性程度与层间深度差值分布Fig. 1 Correlation between layers and distribution of depth difference between layers
从表1中可以看到,当r0=0.8时,准确性最高;当r0>0.8时,满足条件的深度很少,导致统计意义不大。类似地,可得到整个深度预测如下:
1)当r0≥0.8时,采用第一个深度作为最大编码深度进行编码;
2)同理可得,当r1≥0.9时,采用前两个深度中的最大深度进行编码。
为了测试本文算法的效果,采用前述的实验条件进行测试,得到的实验结果如表2所示。其中编码效率由BDBR(Bjøntegaard Delta Bit Rate)[21]参考软件SHM-11.0[20]来评估算法的整体率失真特性。从表2中可以看到本文算法能够保持较好的编码效率。
表2 深度预测的编码损失率Tab. 2 Coding efficiency losses for depth prediction
在质量可伸缩编码中,由于基本层(BL)和增强层(EL)之间的帧分辨率是相同的,所以具有很强的层间相关性。因此,必然有较多的编码单元(CU)采用层间预测模式(ILR)。为了研究增强层EL中ILR模式的分布,通过实验测试了EL中ILR模式和帧内(Intra)模式,它们所占百分比如表3所示。
表3 EL中ILR和Intra模式所占比例对比Tab. 3 Proportion comparison of ILR and Intra mode in EL
从表3中可以看出,ILR模式的平均占比为96%,这表明,在EL层中几乎所有的编码单元都选择了ILR模式。因此,可只采用该模式进行编码。当然,其中包含某些模式的Intra模式也占有一定的比例,但是比例并不大。为了测试本文算法的效果,采用前述的实验条件进行测试,得到的实验结果如表4所示。由表4可知,视频序列的平均BDBR为-0.13%,负值代表了编码效率的提高,即表明本文算法能够保持较高的编码效率。
表4 ILR模式编码损失率Tab. 4 Coding efficiency losses for ILR mode
一般来说,最优划分的残差系数会服从一定的分布规律[20],目前,主要有拉普拉斯分布[21]、高斯分布。其中,采用拉普拉斯分布预测编码效率比采用高斯分布要高,因而本文采用拉普拉斯分布进行测试。
为了判断残差系数是否服从拉普拉斯分布,本文采用分布拟合检验方法进行测试。假设a1、a2、…、an是残差值,将残差系数按照从小到大的顺序分成等距离大小的16个区间,fi表示残差样本落在第i个区域的实际个数,pi表示残差样本落在第i个区间的理论概率。假设第i个区间的最小值为x0,最大值为x1,则pi的值计算如下:
(4)
根据分布拟合检验得到:
(5)
(6)
图2 不同参数对应的编码效率Fig. 2 Coding efficiency with different parameter
为了评估本文算法的性能,在前述实验条件进行测试并与文献[18]算法进行对比。由于本文主要是研究帧内编码,所以编码环境采用 AI-Main (All Intra-Main)。
计算复杂度通过EL中运行的编码时间来度量,TS代表了在EL中编码时间节省的百分比。测试序列采用国际通用测试条件推荐的A和B两种格式的序列[22]如表5所示。
表5 测试序列信息Tab. 5 Test sequences’ information
本文算法和文献[18]算法在相同的计算机平台和AI编码环境下的实验结果如表6所示。
从表6可看出:本文算法的平均编码时间提高了79%,比文献[18]的算法减少了10.49个百分点;同时在率失真方面,本文算法的BDBR也优于文献[18]的算法。因此,从上述实验中可得出结论:本文算法在编码效率损失很小的情况下可以显著提高编码速度。从表6还可以看到,跟文献[18]算法相比,本文算法不但速度提高,而且BDBR和BDPSNR(Bjøntegaard Delta Peak Signal-to-Noise Rate)也有所改善。值得注意的是,文献[18]算法中的平均速度与本文速度意义不同,其原因文献[18]中采用的编译环境是LD-Main(Low Delay-Main)和RA-Main(Random access-Main),而本文采用的编译环境是AI-Main (All Intra-Main)。
表6 本文算法与文献[18]算法的结果对比Tab. 6 Results comparison between the algorithm of the proposed algorithm and reference[18]
为了提高质量SHVC的编码速度,本文提出一种基于SHVC的帧内快速预测算法。该算法主要利用相关性排除可能较小的深度,再利用“分布拟合”检验方法判断残差系数是否符合拉普拉斯分布:若符合拉普拉斯分布则采用层间ILR预测模式,跳过帧内(Intra)预测模式实现提前终止;若不符合拉普拉斯分布则遍历层间ILR预测模式和帧内(Intra)预测模式,计算率失真值,通过比较选择合适的深度值。
实验结果表明,本文算法在编码效率损失很小的情况下,平均编码时间节省了79.00%,比文献[18]算法减少了10.49个百分点。
本文对质量SHVC帧内快速算法进行了研究,为了进一步提高编码速度,下一步将对质量SHVC帧间快速算法进行研究。