随着高清和超高清视频应用的日益增加,高效视频编码(High Efficiency Video Coding, HEVC)标准[1]应运而生,它是继H.264/AVC(Advanced Video Coding)[2]之后的新一代视频编码标准。随着移动设备终端以及云技术的发展,诸如远程桌面、远程教育、在线游戏、电话会议等屏幕视频的应用变得越来越广泛。2014年初视频编码联合小组在HEVC的基础上提出了屏幕内容编码(Screen Content Coding, SCC)的扩展标准,并开发了SCC测试模型(SCC Test Model, SCM)[3]。
HEVC采用基于编码树单元(Coding Tree Unit, CTU)的分层四叉树结构,用编码单元(Coding Unit, CU)、预测单元(Prediction Unit, PU)和变换单元(Transform Unit, TU)来描述整个编码过程。HEVC帧内编码过程采用了基于四叉树的编码技术和35种帧内预测模式;在帧间编码中采用可变PU的高精度运动补偿技术、自适应运动矢量预测技术以及运动融合技术。SCC是HEVC的扩展,不仅继承了HEVC的编码技术,而且增加了新的编码技术:帧内块拷贝(Intra-Block Copy, IBC)、调色板模式(Palette Mode, PLT)、自适应颜色变换和自适应运动矢量分辨率编码新技术[4-8]。由于HEVC编码标准的复杂性以及SCC编码标准增加新技术带来的复杂度,不利于视频的实时应用。
目前有很多学者从不同的角度提出了多种屏幕内容视频快速编码算法。Lei等[9]通过分析视频序列的内容属性,将视频分为自然内容CU和屏幕内容CU:对自然内容CU,如果其最佳预测模式为DC或Planar模式,则跳过其他模式并终止CU分割;对于屏幕内容CU,引入基于秩的策略终止CU划分。Zhang等[10]首先利用CU的时域相关性,确定CU的分割深度,然后采用自适应搜索加速IBC的快匹配过程。Zhang等[11]提出了一种基于熵编码和编码比特位的快速最大编码单元(Largest CU, LCU)分割模式。Kwon等[12]针对SCM平台IBC技术过于复杂的问题,提出了基于帧内率失真代价和CU复杂度的快速跳过模式。Duanmu等[13]用机器学习的方法根据CU的特点进行分类以确定当前CU是否需要划分,并对CU划分的结果进行PU选择。Zhang等[14]首先利用CU之间的时域相关性对CU的深度预测进行快速选择,然后采取自适应搜索的方法降低IBC的复杂度。Kawakami等[15]利用屏幕内容序列具有锐利边缘的特点,提出了基于锐利边缘分类和基于边缘方向性分类的算法,根据边缘方向性的强弱区分CU的分割深度,根据边缘方向性确定PU模式。Laude等[16]针对屏幕内容序列含有大量静止块的特点,利用时间相关性,对于静止区域当前LCU的信息可以从参考帧中的同位块直接拷贝。陈先义等[17]针对屏幕内容包含大量非连续色调内容的特点,提出了一种新的帧内编码模式:帧内串匹配,基本思想是在CU编码层引入字典编码工具,利用散列表对CU内的像素进行串搜索和匹配。
以上算法主要是考虑帧内CU递归分割和模式选择的复杂度,对视频序列的时空域考虑较少,尤其是时域相关性以及运动特性。目前对SCC帧间编码的研究较少,帧间编码与帧内编码的复杂性不同。基于此,本文提出了基于时空域特性的屏幕内容视频帧间快速算法。首先,根据视频的运动特性将视频分为静止帧和运动帧;然后对不同的帧类型根据CU分割深度和最优预测模式统计特性以及时空域相关性采用不同的编码方案进行快速CU分割和PU模式的选取。
1 复杂度分析HEVC采用递归方式对LCU进行四叉树结构的划分,在一个LCU内递归遍历0~3深度的CU,根据率失真优化模型选择最佳的CU分割尺寸。在确定最优CU划分深度的过程中,需要进行85次递归过程,这使得编码复杂度大大增加。预测编码过程中,不同尺寸的CU可以继续划分成不同大小PU。针对每个PU块,HEVC需要遍历Skip、Merge和2种帧内模式以及8种帧间模式,其中inter N×N和intra N×N只有当前CU深度值为3时才可用。HEVC-SCC的预测过程还增加了IBC和PLT模式,其中当CU尺寸为64×64时,PLT模式不存在,如图 1所示。
HEVC-SCC编码新技术的加入降低了码率,但同时也引入了更大的编码复杂度。为了更清楚地了解编码新技术的加入对编码性能的影响,本文分别在全帧内、低延时和随机访问配置下测试了Map、CADWaveform、WordEditing和PCBLayout共4个屏幕内容标准测试序列的编码情况。图 2中BDBR(Bjntegaard Delta Bit Rate)[18]表示相同图像质量条件下码率的变化百分比,Δt表示编码时间的改变,其计算公式为:
$ \Delta t\text{=}{{t}_{\text{SCC}}}/{{t}_{\text{no-SCC}}} $ | (1) |
其中:tSCC表为增加SCC新编码技术所用的编码时间,tno-SCC表示未增加新技术所用的编码时间。
由图 2可以看出,在不同的配置下码率均是下降的,而编码时间是上升的。全帧内编码时,编码时间平均上升321.73%,码率平均下降62.74%;低延时编码时,编码时间平均上升113.49%,码率平均下降53.88%;随机访问编码时,编码时间平均上升121.17%,码率平均下降59.74%。
2 HEVC-SCC帧间快速编码算法HEVC-SCC中,每个CU深度级和模式决策过程都需要计算率失真代价,这使得计算复杂度非常高。如果跳过不必要的深度级和预测模式的率失真代价计算,则可以有效地降低编码复杂度。
2.1 运动静止检测与HEVC标准测试序列相比,HEVC-SCC的标准测试序列时域相关性较强。在帧间编码过程中,运动和静止区域的编码特性不同,因此本文重点探索了运动静止区域的编码特性,根据编码特性的不同决定LCU分割深度和预测模式的最优选择。
本文采用前向帧差确定运动静止帧。具体步骤如下:
1) 获取当前帧和前向参考帧的像素值;
2) 计算当前帧与前向参考帧的像素差diff[i];
3) 计算diff[i]不为0的像素占整帧的比例p;
若p < T1, 则当前帧判定为静止帧,否则为运动帧。本文T1设为64/(h×w),h为帧高,w为帧宽。在运动静止帧的检测中,阈值T1设置为64/(h×w),可以看出在当前图像帧中仅有64个像素与参考帧对应位置像素不同,可以忽略该区域对当前LCU的影响。阈值T1设置为64/(h×w)是因为在编码过程中,最小CU的尺寸为8×8。
在运动帧中仍然存在运动静止块的区别,采用大津阈值方法判定不同帧中的运动静止块。首先根据像素得到帧差图,利用大津阈值法将帧差图进行二值化,然后根据得到的二值化帧差图判定运动静止块。若当前LCU中无运动像素,则判定其为静止LCU,否则为运动LCU。
2.2 静止帧快速算法 2.2.1 CU划分深度的确定对于同一个视频序列,静止帧与其对应参考帧的内容差异往往较小,从而其对应的CU分割深度范围具有很强的相似性。因此,可以根据时域相关性利用参考帧的最佳编码深度确定当前LCU的编码深度。
对Map、CADWaveform、WordEditing 3个序列的前35帧进行统计分析。表 1给出了当前帧的深度范围与参考帧深度范围的统计结果,其中参考帧深度表示参考帧的最小、最大分割深度,静止帧深度表示当前帧的最小、最大分割深度。通过统计结果可以看出时域参考帧最佳分割深度为0且当前帧的最佳分割深度也为0的比例为96.00%,说明静止帧与其时域参考帧都是静止区域的LCU占了整帧图像的96.00%;当前帧与时域参考帧相比为静止区域的LCU占整帧图像的99.76%,最佳编码深度为0。由以上分析可以得出,静止帧的编码深度可以设置为0。
静止帧往往采用大尺寸LCU进行编码,也通常采用大尺寸模式作为最佳分割模式。首先对原始编码平台进行统计分析,如表 2所示,可以看出静止帧中Skip/Merge模式所占比例均在90.00%以上,Skip/Merge、Intra、IBC和PLT模式所占比例为99.00%以上,因此基于统计信息可以对静止帧模式选取采取以下策略:若当前帧判定为静止帧,则只遍历Skip/Merge、Intra、IBC和PLT模式,其中Skip和Merge模式包括帧间和IBC模式。
由于绝对静止块与其参考块的图像信息是完全相同的,则其分割深度与参考块的分割深度应该是相似的。静止LCU的最佳分割深度由式(2) 确定:
$ Depth=\left\{ \begin{align} &\left[0, 0 \right], \ 如果同位\rm{LCU}深度为0 \\ &\left[0, 2 \right], 其他\ \\ \end{align} \right. $ | (2) |
为了验证该部分算法的准确性,表 3统计了不同量化参数(Quantization Parameter, QP)下的准确率。由表 3可以看出,静止LCU的深度分割快速算法的平均准确率可以达到99.39%,提前终止静止LCU的分割不会造成太大的率失真性能损失。
静止块往往采用大尺寸模式作为最佳分割模式,由表 4可知,对于静止块采用Skip/Merge和IIP(Inter_2N×2N、IBC_2N×2N、PLT_2N×2N)作为最佳分割模式的平均比例占到了99.86%,因此可以跳过其他模式的运动估计过程。
运动块的CU分割深度往往较大,并且与时空域相邻LCU的分割深度有较强的关联性。若其相邻LCU均为静止块则关联性几乎为0,因此利用时空域相关性对当前LCU进行分割深度预测时首先要考虑其相邻LCU的运动特性。本文采用5个同位和相邻LCU对当前LCU进行预测,分别为参考帧同位LCU、当前帧左侧LCU、左上LCU、上方LCU和右上LCU。具体预测过程如下:
1) 首先确定其相邻LCU的运动静止标志位FlagMove;
$ Fla{{g}_{Move}}\text{=}\left\{ \begin{align} &1, 同位和相邻\text{LCU}为静止块 \\ &0, \ 同位和相邻\text{LCU}为运动块 \\ \end{align} \right. $ | (3) |
2) 计算相邻LCU标志位的和SUMFlag;
$ SU{{M}_{Flag}}=\sum\limits_{i=0}^{4}{Fla{{g}_{Move}}} $ | (4) |
3) 利用SUMFlag对当前LCU进行深度预测。
$ Dept{{h}_{\text{Pre}}}=\left\{ \begin{align} & \left[ Dept{{h}_{\text{min}}},Dept{{h}_{\text{max}}} \right],\ \quad \ \ SU{{M}_{\text{Flag}}}=0 \\ & \left[ 1,Dept{{h}_{\text{max}}}+1 \right],\quad \ \ \quad \quad 0 < SU{{M}_{\text{Flag}}} < 3 \\ & \left[ 1,3 \right],\quad \quad \quad \quad \quad \quad \ \ \ \ \ \ \ SU{{M}_{\text{Flag}}}\ge 3 \\ \end{align} \right. $ | (5) |
其中,Depthmin和Depthmax分别为相邻LCU的最小和最大分割深度。
由于视频图像中存在着很强的时空域相关性,因此图像中相邻CU的最佳预测模式之间存在着很强的时空域相关性。根据这一特性,在运动LCU模式选择时,可以利用其时空域相邻CU最佳预测模式来预测当前CU的最佳预测模式。由于运动LCU中仍然可能存在小尺寸的静止CU,其预测模式可能为Skip、Merge、IIP,因此要将Skip、Merge模式作为预测的候选模式。具体方案为:针对运动LCU,首先将Skip、Merge、IIP模式加入当前LCU的候选模式列表,若其时空域相邻的5个LCU中的各CU的最佳预测模式为P,则将P加入候选模式列表,完成当前LCU的模式预测过程。经过实验验证发现,在小尺寸CU的预测过程中,由于其时空域相邻LCU并不一定为运动剧烈LCU,这种预测方案会造成较大的率失真性能损失,因此运动LCU中模式选取快速算法只针对分割深度为0和1的CU。
3 实验结果与分析为了验证本文所提出的HEVC-SCC帧间快速编码算法的有效性,将其在SCM参考软件SCM-5.2上进行实现以测试其率失真性能和编码时间。实验平台的硬件配置为Intel Core i5-4590 CPU 3.3GHz,内存为8.0GHz,操作系统为Windows 7 64位。实验的主要编码参数为低延时编码模式,编码帧数为100帧,QP分别为22、27、32和37,GOP(Group of Pictures)大小为4。为了衡量算法的编码性能,本文采用BDBR和ΔT来衡量算法的编码复杂度降低,其计算公式为:
$ \Delta T=\left( \left( {{T}_{\text{reference}}}-{{T}_{\text{proposed}}} \right)/{{T}_{\text{reference}}} \right)\times 100% $ | (6) |
其中:Treference以及Tproposed分别表示SCM原始算法(Anchor SCM-5.2) 和提出算法的编码时间。
本文采用通用测试条件[19]中的11个测试序列进行实验验证。实验结果表明,本文算法与标准算法相比,编码时间平均降低46.40%,BDBR平均上升3.65%。
由表 5实验结果可以看出,本文所提算法对不同序列均可以降低编码复杂度。用原始平台进行编码,每个LCU都需要遍历0~3深度的预测模式,而使用本文所提算法可以根据编码帧以及编码LCU类型的不同,提前终止CU的分割以及实现模式的快速选取,从而节省编码时间。
但是对不同的测试序列编码复杂度的降低情况是不同的。对Kimono1和VenueVu序列节省的时间可以达到70%左右,这是由于这两个序列本身变化虽缓慢,但受光照因素以及复杂背景的影响,原始平台编码时Skip模式相对较少,而采用本文所提快速算法,可以跳过某些深度及模式的预测过程,大大降低编码复杂度。对Ppt_doc_xls、CADWaveform等序列因为其本身存在大量的字符、线条等且变化缓慢,编码Skip模式的占很大比例,而原始平台在模式选取时有Skip模式的提前终止,因此本文所提算法对这类序列的编码复杂度降低较少。
为了进一步验证不同帧的编码策略对编码性能的影响,对Map、CADWaveform、WordEditing 3个测试序列的前35帧进行统计。其中,Map序列的第2、3、6、8、9、11、32、33、34帧,CADWaveform序列的第32、33、34帧,WordEditing序列的第3、7、9、10、12、19、22、23、24、26、27帧为静止帧,所占比例为21.90%;运动帧中,静止LCU的比例为49.02%,运动LCU的比例为50.98%。表 6分别测试了静止帧和运动帧编码策略对编码性能的影响。从表 6可以看出,运动帧快速算法对编码时间的节省更加明显。
本文提出了一种基于时空域相关性的屏幕内容视频帧间快速算法,该算法通过运动静止检测将编码帧分为运动帧和静止帧,针对不同的帧类型采用不同的快速算法。在静止帧中,充分利用统计特性及时域相关性来确定CU分割深度和最优预测模式。在运动帧中,将待编码LCU分为静止LCU和运动LCU,静止LCU利用时域统计特性提前终止CU分割和确定预测模式;运动LCU利用时空域相关性确定CU最佳分割深度。实验结果表明,本文提出的算法相比原始SCM平台,在BDBR平均上升3.65%的情况下,编码时间平均节省46.40%,有利于屏幕内容视频的实际应用。
[1] | WIEGAND T, OHM J R, SULLIVAN G J, et al. Special section on the joint call for proposals on High Efficiency Video Coding (HEVC) standardization[J]. IEEE Transactions on Circuits and Systems for Video Technology, 2010, 20(12): 1661-1666. DOI:10.1109/TCSVT.2010.2095692 |
[2] | WIEGAND T, SULLIVAN G J, BJONTEGAARD G, et al. Overview of the H.264/AVC video coding standard[J]. IEEE Transactions on Circuits and Systems for Video Technology, 2003, 13(7): 560-576. DOI:10.1109/TCSVT.2003.815165 |
[3] | JOSHI R, XU J, COHEN R, et al. Screen content coding test model 3 encoder description (SCM 3)[R]. Strasbourg, France:The Joint Collaborative Team on Video Coding, 2014. |
[4] | CHEN C C, XU X, LIAO R L, et al. Screen content coding using non-square intra block copy for HEVC[C]//Proceedings of the 2014 IEEE International Conference on Multimedia and Expo. Washington, DC:IEEE Computer Society, 2014:1-6. http://ieeexplore.ieee.org/document/6890229/ |
[5] | XU J, JOSHI R, COHEN R A. Overview of the emerging HEVC screen content coding extension[J]. IEEE Transactions on Circuits and Systems for Video Technology, 2016, 26(1): 50-62. DOI:10.1109/TCSVT.2015.2478706 |
[6] | ZHANG K, AN J, ZHANG X, et al. Symmetric intra block copy in video coding[C]//Proceedings of the 2015 IEEE International Symposium on Circuits and Systems. Piscataway, NJ:IEEE, 2015:521-524. |
[7] | CHANG T S, LIAO R L, CHEN C C, et al. RCE3:Results of subtest B.1 on N×2N/2N×N intra block copy[R]. San Jose, USA:The Joint Collaborative Team on Video Coding, 2014. |
[8] | SUN Y C, CHUANG T D, LAI P L, et al. Palette mode-a new coding tool in screen content coding extensions of HEVC[C]//Proceedings of the 2015 IEEE International Conference on Image Processing. Piscataway, NJ:IEEE, 2015:2409-2413. |
[9] | LEI J, LI D, PAN Z, et al. Fast intra prediction based on content property analysis for low complexity HEVC-based screen content coding[J]. IEEE Transactions on Broadcasting, 2017, 63(1): 48-58. DOI:10.1109/TBC.2016.2623241 |
[10] | ZHANG H, ZHOU Q, SHI N, et al. Fast intra mode decision and block matching for HEVC screen content compression[C]//Proceedings of the 2016 IEEE International Conference on Acoustics, Speech and Signal Processing. Piscataway, NJ:IEEE, 2016:1377-1381. http://ieeexplore.ieee.org/document/7471902/ |
[11] | ZHANG M, GUO Y, BAI H. Fast intra partition algorithm for HEVC screen content coding[C]//Proceedings of the 2014 IEEE Visual Communications and Image Processing Conference. Piscataway, NJ:IEEE, 2014:390-393. |
[12] | KWON D K, BUDAGAVI M. Fast intra block copy (IntraBC) search for HEVC screen content coding[C]//Proceedings of the 2014 IEEE International Symposium on Circuits and Systems. Piscataway, NJ:IEEE, 2014:9-12. http://ieeexplore.ieee.org/document/6865052/ |
[13] | DUANMU F, MA Z, WANG Y. Fast CU partition decision using machine learning for screen content compression[C]//Proceedings of the 2015 IEEE International Conference on Image Processing. Piscataway, NJ:IEEE, 2015:4972-4976. |
[14] | ZHANG H, ZHOU Q, SHI N, et al. Fast intra mode decision and block matching for HEVC screen content compression[C]//Proceedings of the 2016 IEEE International Conference on Acoustics, Speech and Signal Processing. Piscataway, NJ:IEEE, 2016:1377-1381. http://ieeexplore.ieee.org/document/7471902/ |
[15] | KAWAKAMI Y, CHEN G, IKENAGA T. Content based mode and depth skipping with sharp and directional edges for intra prediction in screen content coding[C]//Proceedings of the 2016 IEEE International Colloquium on Signal Processing and Its Applications. Piscataway, NJ:IEEE, 2016:46-49. |
[16] | LAUDE T, OSTERMANN J. Copy mode for static screen content coding with HEVC[C]//Proceedings of the 2015 IEEE International Conference on Image Processing. Piscataway, NJ:IEEE, 2015:1930-1934. http://ieeexplore.ieee.org/xpl/articleDetails.jsp?arnumber=7351137 |
[17] | 陈先义, 赵利平, 林涛. 一种新的用于屏幕图像编码的HEVC帧内模式[J]. 电子与信息学报, 2015, 37(11): 2685-2690. (CHEN X Y, ZHAO L P, LIN T. A new HEVC intra mode for screen content coding[J]. Journal of Electronics and Information Technology, 2015, 37(11): 2685-2690.) |
[18] | BJONTEGAARD G. Calculation of average PSNR differences between RD-curves[EB/OL]. (2001-05-18)[2016-09-15]. http://wftp3.itu.int/av-arch/video-site/0104_Aus/. |
[19] | YU H, COHEN R, RAPAKA K, et al. Common test conditions for screen content coding[R]. Sapporo, Japan:The Joint Collaborative Team on Video Coding, 2014. |