广东工业大学学报  2015, Vol. 32Issue (4): 132-137.  DOI: 10.3969/j.issn.1007-7162.2015.04.024.
0

引用本文 

伍冠健, 宋立锋. HEVC快速帧内模式和深度决策算法[J]. 广东工业大学学报, 2015, 32(4): 132-137. DOI: 10.3969/j.issn.1007-7162.2015.04.024.
Wu Guan-jian, Song Li-feng. Fast Intra Mode and Depth Decision Algorithm for HEVC[J]. Journal of Guangdong University of Technology, 2015, 32(4): 132-137. DOI: 10.3969/j.issn.1007-7162.2015.04.024.

基金项目:

广东省教育部产学研结合项目(2009B090300436)

作者简介:

伍冠健(1989-),男,硕士研究生,主要研究方向为嵌入式网络多媒体技术及视频编解码算法。

文章历史

收稿日期:2014-11-19
HEVC快速帧内模式和深度决策算法
伍冠健, 宋立锋     
广东工业大学 信息工程学院,广东 广州 510006
摘要: 针对HEVC帧内预测过程计算复杂度较大的问题,提出基于隔点模式抽取、像素梯度统计和子PU残差相对比的快速帧内预测算法.对应HEVC的33种帧内角度模式,按区间划分33类梯度方向并计算PU各个像素的梯度方向.先对偶数编号的角度模式计算排序,再快速比较得到候选模式集.然后根据所属各类梯度方向的像素累计个数,舍弃部分候选模式.在计算当前PU的哈达玛变换预测残差(Sum of Absolute Transformed Difference, SATD)的同时,记录该PU内4个子PU的SATD,并通过对这4个SATD之间的相对比,跳过当前PU之后深度的计算.实验结果表明,与HEVC标准测试模型HM13.0的算法相比,本文所提出的算法可节省约54%的帧内编码时间,而码率只有约1%的增加.
关键词: HEVC    帧内预测    隔点模式抽取    像素梯度    子PU残差    快速算法    
Fast Intra Mode and Depth Decision Algorithm for HEVC
Wu Guan-jian, Song Li-feng     
School of Information Engineering, Guangdong University of Technology, Guangzhou 510006, China
Abstract: A fast algorithm based on interlaced extracting modes, statistics of pixel gradient and residual of sub-CU for intra prediction in High Efficiency Video Coding (HEVC) is presented in this paper. Corresponding to 33 intra angle modes in HEVC, gradient directions are divided into 33 classes. And gradient direction of every pixel in a CU is calculated. Angle modes with even number are calculated and ranked firstly, then the set of candidate mode is gained by fast comparison. According to the cumulative number of pixels in every class of gradient direction, some candidate modes can be rejected. When calculating Hadamard Transform predicted residual (SATD) of current PU, SATDs of the four sub-PUs are noted. According the relative ratio of them, the traversal calculation of next depth of current PU is rejected. Experimental results show that, compared with HM13.0, the proposed method performs about 54% time saving of intra encoding with only 1% increment on the total rate.
Key words: high efficiency video coding (HEVC)    intra prediction    interlaced extracting mode    pixel gradient    residual of sub-PU    fast algorithm    

新一代视频压缩编码标准高效视频编码(High Efficiency Video Coding,HEVC)[1]由MPEG与VCEG组成的视频编码联合专家组(JCT-VC)制定,最初于2010年1月启动,并于2013年1月正式完成发布[2].HEVC的目标在于大幅提高视频编码效率,在相同图像质量的前提下,压缩率比H.264/AVC高档次(High Profile)提高一倍,支持从320×240到7 980×4 320各种分辨率的视频[3].同时,相比H.264的传输特点[4],HEVC的码流结构更适合传输速度越来越快的网络环境[5].为此, HEVC在编码流程的各个环节都做了大量的改进.其中在帧内预测方面,预测模式由8种扩展为36种;编码块尺寸由4×4和8×8两种扩展为由4×4到64×64共5种尺寸.但多种模式和多层深度的遍历计算,在提高了预测精度的同时,也大幅增加了运算复杂度[6].因此,对HEVC的应用推广来说,快速帧内预测算法的提出是必然需求.

现阶段HEVC的快速帧内预测算法可分为两类.第一类是减少遍历计算的模式个数,尤其是进入率失真优化(Rate-Distortion Optimization,RDO)阶段的候选模式个数.如文献[7-8]提出的根据像素梯度统计信息,减少进入粗模式选择(Rough Mode Decision,RMD)和RDO的候选模式个数.文献[7]的算法在HEVC标准测试模型HM4.0的测试中,编码时间减少了20%,码率增加了0.74%.此外,文献[9]利用组合比较的方法, 减少了RMD遍历的模式个数.文献[10-11]利用分组合并的方法快速得到编码单元(Codiny Unit, CU)的最佳模式.第二类是减少遍历计算的层次深度.如文献[11]提出了基于CU当前深度的总代价与当前量化参数(Quantization Parameter, QP)的比较,跳过之后的深度遍历,该算法在HM5.2rc1的测试中,编码时间减少了24%,码率增加了0.83%.此外,文献[12]提出了通过CU当前深度与上一深度的率失真代价(Rate-Distortion Cost,RD Cost)的比较跳过当前以及之后的深度遍历的算法;文献[13-14]提出了根据区域图像特征快速选定CU划分深度的算法.以上算法虽然都在一定程度上减少了编码时间,但减少幅度还不大.本文提出的算法能在码率增幅极小的前提下,大幅减少帧内预测编码时间,更有利于HEVC的应用推广.

1 HEVC帧内编码 1.1 帧内编码块和预测模式

HEVC划定了如图 1所示的四叉树结构的编码单元(Coding Unit, CU), 以此作为单位进行编码.先规定最大的CU(Largest CU, LCU),最大为64×64,往下可逐层划分,最小尺寸为8×8.每一层成为一个深度,并规定LCU的深度为0,往下递增.在帧内编码中,LCU之间按光栅扫描顺序逐个编码,而在LCU内部则按Z扫描顺序对各个深度的CU进行遍历预测.在非最大深度CU中,预测单元(Prediction Unit, PU)尺寸都与CU相同,即按2N×2N方式划分.当完成最大深度CU的预测后,则要在最大深度CU的基础上再往下划分一层深度PU进行遍历预测,即按N×N方式划分.如图 2所示,HEVC的帧内预测模式有36种,其中包括33种角度预测模式(编号为2到33),2种非角度预测模式(编号为0的Planar和编号为1的DC模式),1种色度预测特有的亮度导出模式(编号为36的DM,编号为35的LM预测模式已被弃用,但仍保留其编号)[15].

图 1 基于四叉树的CU划分 Figure 1 The partition of coding unit based on quad-tree
图 2 33种帧内角度预测模式 Figure 2 33 kinds of angular intra prediction modes
1.2 帧内预测流程

自2013年JCT-VC正式发布了HEVC后,其标准测试软件HM趋向稳定.根据HM13.0,HEVC的帧内亮度预测流程如图 3所示,可分为4个环节.首先进行RMD,对PU遍历35种模式预测.每次对预测块与原始块的残差使用哈达玛变换,得到其SATD值.定义每个模式RMD预测的总代价HC为

$ {\rm{HC}} = {\rm{SAT}}{{\rm{D}}_{{\rm{pre}}}} + \lambda \cdot R, $ (1)
图 3 HM13.0单层深度帧内预测流程 Figure 3 The process of intra prediction in one depth of HM13.0

其中SATDpre是预测块与原始块的SATD值,λ是拉格朗日乘子,R是使用该模式编码的比特率.在这35种模式中,根据PU的尺寸选择其HC最小的N个模式作为候选模式集MC.若PU尺寸大于或等于16×16,则N= 3;否则N= 8.其次,进行最有可能模式选择(Most Probable Mode,MPM),即根据当前PU的左、上边已编码的邻近PU的模式,添加1或2种模式进候选模式集MC,并更新N的值.然后对这N种候选模式进行第一次率失真优化(RDO1),定义其率失真代价RC为

$ {\rm{RC}} = {\rm{SS}}{{\rm{D}}_{{\rm{rec}}}} + \lambda \cdot R, $ (2)

其中SSDrec(Sum of Squared Difference)是使用该模式编码的重建块与原始块的残差.RC最小的模式即为帧内预测的最佳模式.最后对该最佳模式进行第二次率失真优化(RDO2),该次RDO使用了TU划分,根据两者RC的比较,以确定PU是作为一个TU,还是划分为多个TU进行编码.

2 HEVC快速帧内预测算法 2.1 减少遍历计算的模式个数

HM标准帧内预测算法中,在RMD环节要计算35个模式,在两次RDO环节共要计算N+1个模式,其计算量过于庞大.由于RDO使用的是重建块,每计算一次RDO,就相当于对PU做了一次完整的编码流程,计算量更是远大于RMD.因此,本文提出如图 4所示的一系列快速算法,以减少进入RMD和RDO环节的模式个数.

图 4 修改后的单层深度帧内预测流程 Figure 4 The modified process of intra prediction in one depth
2.1.1 减少RMD计算的模式个数

RMD的快速算法分4步,每计算一个模式则排序更新一次RMD候选模式集MC.首先计算17个编号为偶数的角度模式,并根据其HC值,由小到大排序,选取前N个模式组成RMD候选模式集MC.其次,检测当前PU是否存在左、上、左上、右上邻近PU,以及其所属上一深度的PU.若这些PU存在并已完成预测,则对当前PU计算它们所采用的模式.然后,比较MC内前两个模式M1M2的HC值,若满足式(3),则分别计算这两个模式的两个未被检测过的邻近编号模式,否则只计算M1的两个邻近编号模式. α的值本文取1.2.例如若M1=4,则要检测编号为3与5的两个模式;若M1=9,则要检测编号为7与11的两个模式.最后计算编号为0和1的两个非角度模式.经此修改,RMD实际遍历计算的模式个数通常只有21到23个,仅占全部模式个数的60%.该部分算法全流程如图 5所示.此算法的思路在于舍弃原本全搜索得到最佳候选集的方式,改为由疏到密的隔点抽样,逐步逼近最佳的候选模式.其中对邻近PU以及上层PU模式的检测,是基于它们与当前PU之间存在一定的空域相似性,有较大可能选取相同或相近的最佳模式.

$ {\rm{H}}{{\rm{C}}_2} < \alpha \cdot {\rm{H}}{{\rm{C}}_1} $ (3)
图 5 修改后的RMD流程 Figure 5 The modified process of rough mode decision
2.1.2 提前确定最佳模式

在进入第一次RDO之前,检测当前PU的左、上邻近PU以及所属上一深度的PU是否都存在,并且它们所选的最佳模式是否都与当前PU的RMD最佳候选模式相同.若相同,再检测左上、右上邻近PU.只要这两者中存在一个,并且其所选的最佳模式与当前PU的RMD最佳候选模式相同,则确定此最佳候选模式为最佳模式,不再对其他候选模式进行RDO计算;否则进行像素梯度检测,再次筛选候选模式集MC.

2.1.3 像素梯度检测

每进入一个新的LCU,则对该LCU内每个像素计算其梯度方向.定义像素Px, y的右边和下边邻近像素分别为Px+1, yPx, y+1.若Px, y是LCU的右或下边界像素,则令其右或下邻近像素与其相等.像素梯度方向为

$ {\rm{Angle}} = \frac{{{P_{x,y}} - {P_{x,y + 1}}}}{{{P_{x,y}} - {P_{x + 1,y}}}}. $ (4)

定义与Angle相对应的角度模式编号如表 1所示.在该LCU内的各个深度的PU,都可统计该PU内采用某个模式的像素个数.对候选模式集MC第3个及之后的候选模式检测,定义当前PU中采用编号为i(2≤i≤33)的角度候选模式的像素个数为ni,当前PU的宽度为W,高度为H.若满足式(5)[8],则可认为在全部33个角度模式中,模式i成为最佳模式的概率远低于平均水平,可以在MC中舍弃模式i.

$ \left\{ \begin{array}{l} {n_i} = 0,\\ {n_{i - 1}} \le W \cdot H/33,\\ {n_{i + 1}} \le W \cdot H/33. \end{array} \right. $ (5)
表 1 像素梯度方向与帧内角度模式编号的对应关系 Table 1 The correspondence between gradient directions of a pixel and numbers of angular intra prediction modes

若当前PU尺寸大于或等于16×16,则对所有角度模式按其所包含的像素个数由多到少进行排序,选取前N个模式作为比较集MC0与MC中第3个以及之后的角度候选模式逐个对照.若某个候选模式不在MC0之中,则舍弃该候选模式.由于尺寸为8×8和4×4的PU所含的像素个数较少,各ni相差不明显,该排序比较算法的准确性会因而下降,故不适用于它们.

2.1.4 子PU残差比较

一个PU的SATD,是对其划分为多个8×8或4×4块分别计算得到的SATD的总和.因此,在计算某个非最大深度PU的SATD时,可记录它所包含的4个子PU各自的SATD,记为subSATDi.并定义这4个子PU残差值之间的总相对误差率为subR.

$ {\rm{Average}} = \frac{{\sum\limits_{i = 1}^4 {{\rm{subSAT}}{{\rm{D}}_i}} }}{4}. $ (6)
$ {\rm{sub}}R = \frac{{\sum\limits_{i = 1}^4 {\left( {{\rm{subSAT}}{{\rm{D}}_i} - {\rm{Average}}} \right)} }}{{4 \cdot {\rm{Average}}}}. $ (7)

PU的帧内预测都是基于左、上邻近PU的像素得到的,因此在PU内部,越靠右、下方向的像素,其预测误差越大,这种情况在PU包含丰富的纹理信息时愈加明显.从式(6)~(7)可知,对某个非最大深度PU来说,可根据其subR的大小体现它包含的纹理信息的丰富程度,并由此推测PU是否需要TU划分乃至下一深度的PU划分.

从实验数据可知,4×4的PU必定不需TU划分;8×8的PU有极大几率不需TU划分,因此可以跳过RDO2;尺寸在16×16及以上的PU是否需TU划分的随机性较大,不应跳过RDO2.本文提出的算法是:4×4、8×8、64×64的PU跳过RDO2;尺寸在16×16及以上的PU最佳模式若满足式(8)则跳过RDO2. β的值本文取0.3.

$ {\rm{sub}}R < \beta . $ (8)
2.2 减少遍历计算的层次深度

若当前PU是深度为d(d>0)的第k(1≤k≤4)个PU,在完成该PU的帧内预测后,可检测其上一深度的subRd-1值,若不满足式(9), 则按照原本的预测流程继续;否则可进一步比较率失真代价.定义上一深度的PU的率失真代价为RCd-1,其4个子PU采用最佳模式下的STAD值分别为subSATDd-1, i,当前深度k个PU的率失真代价分别为RCd, i.若满足式(12)[12],则可认为当前CU的图像比较平缓,不需更大深度的划分,即跳过之后的遍历计算流程,提前确定d-1为当前LCU的最佳划分深度. γ的值本文取0.1.

$ {\rm{sub}}{R_{d - 1}} < \gamma . $ (9)
$ {\rm{Th1}} = {\rm{min}}\left( {\frac{4}{k},\frac{{\sum\limits_{i = 1}^4 {{\rm{subSAT}}{{\rm{D}}_{d - 1,i}}} }}{{\sum\limits_{i = 1}^k {{\rm{subSAT}}{{\rm{D}}_{d - 1,i}}} }}} \right). $ (10)
$ {\rm{Th2}} = \left\{ \begin{array}{l} 1.6,k = 1;\\ 1.4,k = 2;\\ 1.2,k = 3;\\ 1,k = 4. \end{array} \right. $ (11)
$ \sum\limits_{i = 1}^k {{\rm{R}}{{\rm{C}}_{d,i}}} \cdot {\rm{Th1}} > {\rm{R}}{{\rm{C}}_{d - 1}} \cdot {\rm{Th2}}{\rm{.}} $ (12)
3 实验结果与分析 3.1 实验条件

本文所提出的算法已在HEVC标准测试模型HM13.0实现,编码采用HM13.0附带的All Intra和Random Access的Main Profile标准配置文件.对27个HEVC通用测试序列各以22、27、32、37共4个QP进行编码.实验环境是:主频3.3GHz的IntelCore i3-2120 CPU,4Gbyte内存的Windows 7 (64位)系统,代码编译工具使用VS2010.

3.2 实验结果分析

本文所提出的算法与原HM13.0之间的性能比较由Bjontegaard[16]的算法体现.BDRate是经由RD曲线拟合得到的,在相同亮度PSNR下,本文算法相比HM13.0所增加的比特率百分比.同理,BDPSNR是在相同比特率下,本文算法与HM13.0的亮度PSNR差值.ATSP(Average Time Saving Percent)是本文算法相比HM13.0所减少的编码时间百分比.

$ \begin{array}{l} \ \ \ \ \ \ \ {\rm{ATSP}} = \\ \frac{1}{4}\sum\limits_{i = 1}^4 {\frac{{{\rm{Tim}}{{\rm{e}}_{{\rm{HM13}}.0}}\left( {{\rm{Q}}{{\rm{P}}_i}} \right) - {\rm{Tim}}{{\rm{e}}_{{\rm{proposed}}}}\left( {{\rm{Q}}{{\rm{P}}_i}} \right)}}{{{\rm{Tim}}{{\rm{e}}_{{\rm{HM13}}.0}}\left( {{\rm{Q}}{{\rm{P}}_i}} \right)}}} \cdot 100\% . \end{array} $ (13)

测试结果如表 2所示.在All Intra配置下,从Class A到Class E皆是由摄像机拍摄的常规视频序列,它们的峰值信噪比平均下降0.045dB,比特率增加0.858%.Class F为特殊用途视频序列,峰值信噪比平均下降0.270dB,比特率增加2.346%.全部视频序列的峰值信噪比总体下降0.079dB,比特率增加1.079%,编码时间减少53.67%.在Random Access配置下,从Class A到Class E视频序列的峰值信噪比平均下降0.026dB,比特率增加0.795%.Class F的峰值信噪比平均下降0.182dB,比特率增加1.832%.全部视频序列的峰值信噪比总体下降0.049dB,比特率增加0.949%,编码时间减少12.97%.由此可见,本文所提出的算法能大幅减少帧内编码时间,而所造成的总体图像质量下降和码率增加非常轻微.

表 2 27个HEVC通用测试序列的实验数据 Table 2 The experimental data of 27 universal test sequences of HEVC
4 结语

本文介绍了新一代视频编码标准HEVC的帧内预测技术,以及一些前人关于HEVC快速帧内预测算法的研究成果,并提出了新的快速帧内预测算法.该算法以像素梯度统计和子PU残差比较作为参考要素,在帧内预测时,舍弃了某些模式和深度的遍历计算.在与HM13.0的实验结果比较中,本文所提出的算法大幅减少了帧内编码时间,而因此只有轻微的图像质量下降和比特率增加.

参考文献
[1] Bross B, Han W J, Sullivan G J, et al. High efficiency video coding (HEVC) text specification draft 9[S]. document JCTVC K1003, ITU-T/ISO/IEC Joint Collaborative Team on Video Coding (JCT-VC), 2012.
[2] Sullivan G J, Ohm J, Han W, et al. Overview of the high efficiency video coding (HEVC) standard[J]. Circuits and Systems for Video Technology, IEEE Transactions, 2012, 22(12): 1649-1668. DOI: 10.1109/TCSVT.2012.2221191.
[3] 朱秀昌, 李欣, 陈杰. 新一代视频编码标准——HEVC[J]. 南京邮电大学学报:自然科学版, 2013, 33(3): 1-11.
Zhu X C, Li X, Chen J. Next generation video coding standard——HEVC[J]. Journal of Nanjing University of Posts and Telecommunications: Natural Science Edition, 2013, 33(3): 1-11.
[4] 刘国英, 章云, 陈泓屺. H.264视频码流自适应传输的研究与实现[J]. 广东工业大学学报, 2013, 30(4): 83-87.
Liu G Y, Zhang Y, Chen H Q. Research on and implementation of adaptive transmission of H.264 video stream[J]. Journal of Guangdong University of Technology, 2013, 30(4): 83-87.
[5] Rickard S, Ying C, Akira F, et al. Overview of HEVC high-level syntax and reference picture management[J]. Circuits and Systems for Video Technology, IEEE Transactions, 2012, 22(12): 1858-1870. DOI: 10.1109/TCSVT.2012.2223052.
[6] Guilherme C, Pedro A, Luciano A, et al. Performance and computational complexity assessment of high-efficiency video encoders[J]. Circuits and Systems for Video Technology, IEEE Transactions, 2012, 22(12): 1899-1909. DOI: 10.1109/TCSVT.2012.2223411.
[7] Jiang W, Ma H, Chen Y. Gradient based fast mode decision algorithm for intra prediction in HEVC[C]// Consumer Electronics, Communications and Networks(CECNet), 2012 2nd International Conference. Yichang: IEEE, 2012: 1836-1840.
[8] Chen G, Pei Z, Sun L, et al. Fast intra prediction for HEVC based on pixel gradient statistics and mode refinement[C]// Signal and Information Processing(ChinaSIP), 2013 IEEE China Summit & International. Beijing: IEEE, 2013: 514-517.
[9] 石飞宇, 刘昱. 一种HEVC快速帧内模式判断算法[J]. 电视技术, 2013, 37(11): 8-11.
Shi F Y, Liu Y. Fast intra mode decision algorithm for HEVC[J]. Digital Video, 2013, 37(11): 8-11. DOI: 10.3969/j.issn.1002-8692.2013.11.003.
[10] Yan S, Hong L, He W, etal. Group-Based Fast Mode Decision Algorithm for Intra Prediction in HEVC[C]//Signal Image Technology and Internet Based Systems(SITIS), 2012 Eighth International. Naples: [s. n], 2012: 225-229.
[11] Kim J, Choe Y, Kim Y. Fast coding unit size decision algorithm for intra coding in HEVC[C]//Consumer Electronics(ICCE), 2013 IEEE International Conference. NV Las Vegas: IEEE, 2013: 637-638.
[12] Zhang H, Ma Z. Early termination schemes for fast intra mode decision in high efficiency video coding[C]// Circuits and Systems(ISCAS), 2013 IEEE International Symposium. Beijing: IEEE, 2013: 45-48.
[13] 蒋洁, 郭宝龙, 莫玮, 等. 利用平滑区域检测的HEVC帧内编码快速算法[J]. 西安电子科技大学学报:自然科学版, 2013, 40(3): 194-200.
Jiang J, Guo B L, Mo W, et al. Fast intra coding algorithm using smooth region detection for HEVC[J]. Journal of Xidian University: Natural Science Edition, 2013, 40(3): 194-200.
[14] 甘勇, 赵晓荣, 李天豹, 等. 基于图像特征的HEVC快速帧内预测算法[J]. 郑州轻工业学院学报:自然科学版, 2014, 29(1): 90-93.
Gan Y, Zhao X R, Li T B, et al. Fast intra prediction algorithm based on picture feature for HEVC[J]. Journal of Zhengzhou University of Light Industry:Natural Science Edition, 2014, 29(1): 90-93.
[15] Lainema J, Bossen F, Han W, et al. Intra coding of the HEVC standard[J]. Circuits and Systems for Video Technology, IEEE Transactions, 2012, 22(12): 1792-1801. DOI: 10.1109/TCSVT.2012.2221525.
[16] Bjontegaard G. Calculation of average PSNR differences between RD-curves (VCEG-M33)[C]// Proc. VCEG Meeting. USA Texas Austin: [s. n], 2001.