一种面向屏幕视频的快速帧内编码算法

2021-03-17 00:45江尚军毛翔田
关键词:灰度共生编码

江尚军,毛翔田,陆 宇

(杭州电子科技大学通信工程学院,浙江 杭州 310018)

0 引 言

屏幕内容编码(Screen Content Coding, SCC)[1]标准新增的帧内块复制模式(Intra Block Copy, IBC)[2]和调色板模式(Palette, PLT)[3]导致编码单元(Coding Unit, CU)和预测单元 (Prediction Unit, PU)的编码复杂度提高了5倍以上[4]。许多学者应用屏幕内容多锐利边缘、多重复图样、多平坦区域等特性,设计了快速优化算法。文献[5-6]提出了copy-left,copy-above和copy-inter调色板复制模式以提高编码效率,但这种局部预测方法具有一定的局限性。文献[7]根据预测单元和解码单元之间的相关性决策编码模式来压缩编码时间。文献[8]将CU分成自然内容CU和屏幕内容CU,对两种类型的CU提出不同的快速算法,但分类过程大大增加了计算成本。文献[9]通过由底向上逐像素判定CU平滑性来决策CU的提前终止或早期分割,达到了较好的效果,因此,可以通过当前编码块平滑属性,提前预测当前编码单元划分深度的等级。文献[10-11]分别从不同的角度对PU预测模式进行选择,但忽略了在特定深度区间上的CU的划分与终止。考虑到以上方案在编码过程的局限性,本文针对屏幕内容视频图像平滑性和相关性特征对编码深度和预测模式的影响,提出一种面向屏幕视频的快速帧内编码算法,包括编码单元快速划分算法(Fast Partition for Coding Unit, FPCU)和预测模式快速选择算法( Fast Selection for Prediction Mode, FSPM),简称为SCC组合快速算法。

1 SCC组合快速算法

1.1 编码单元快速划分算法

SCC编码标准的CU四叉树划分是将图像划分为许多尺寸为64×64编码树单元(Coding Tree Unit,CTU),每个CTU划分为4个方形CU,进一步递归划分每个CU,直到达到最小的CU尺寸8×8。一个尺寸为64×64的CTU被认为是最大的CU,深度定义为0,尺寸为32×32、16×16、8×8的CU的深度等级分别定义为1,2,3。为了减少CU深度等级的浏览,本文提出编码单元快速划分算法,主要包括基于灰度共生矩阵的快速CU划分、基于空域相关性的深度范围预测和基于编码比特的提前终止模块。

1.1.1 基于灰度共生矩阵的快速CU划分

图像的纹理是由空间上重复出现的灰度像素形成的,因而像素的灰度值之间存在空间上的相关性,为了描述这种像素的空间相关特征,Haralick等[12]在20世纪70年代初提出了灰度共生矩阵(Gray Level Co-occurrence Matrix, GLCM) 的概念,灰度共生矩阵的计算公式如下:

(1)

式中,(i,j)表示灰度共生矩阵中元素的位置,(a,b)分别表示图像像素对在水平和竖直方向上的偏移量,(x,y)表示原图像中像素点的位置,I(x,y)表示对应位置像素点的灰度值。灰度共生矩阵很好地反应了图像的纹理复杂度情况。图像越光滑,像素纹理变化越少,灰度共生矩阵非零取值元素接近主对角线的个数越多;反之,图像越粗糙,纹理变化越多,灰度共生矩阵的非零取值元素远离主对角线位置的个数越多。

考虑到灰度共生矩阵的特点和屏幕内容视频具有大量平坦区域的特征,基于灰度共生矩阵的快速CU划分模块先计算编码单元90°和0°方向的灰度共生矩阵,Vnum和Hnum分别表示90°方向和0°方向的灰度共生矩阵非对角线元素的个数,然后依据Vnum和Hnum来决定当前编码块是提前终止还是早期划分。依据式(1),将0°方向和90°方向的灰度共生矩阵对应的水平和竖直偏移量值分别设置为(1,0)和(0,1)。90°方向和0°方向的灰度共生矩阵非对角线元素个数Vnum和Hnum的计算公式分别为:

(2)

(3)

式中,M(0,1)表示竖直方向偏移量取1的90°方向灰度共生矩阵,M(1,0)表示水平方向偏移量取1的0°方向灰度共生矩阵。

编码深度分别为0,1,2时,设置当前编码深度Vnum和Hnum的取值区间,对CU提前终止标志位Fet或早期分割标志位Fes做出判定,判定过程如图1所示。经判定后,若Fet为1,CU划分提前终止;若Fes为1,执行早期分割。

图1 基于灰度共生矩阵的CU判断流程

1.1.2 基于空域相关性的深度范围预测

图2 空间相邻CU位置示意图

CU划分时,完全按照四叉树划分方式从深度0遍历到深度3进行CU划分,效率较低,所以,基于空域相关性的深度范围预测模块根据视频序列的相关性,参考相邻已编码CU的深度值自适应地确定当前CU深度等级范围,选取的相邻位置有左、左上、上、右上,参考位置如图2所示。

基于空域相关性的深度范围预测模块的参考深度定义为Dref,计算公式为:

Dref=0.4×DL+0.4×DA+0.1×DAL+0.1×DAR

(4)

式中,DL表示左方邻CU深度,DA表示上方邻CU深度,DAL表示左上方邻CU深度,DAR表示右上方邻CU深度。根据Dref的值将CU分为5个类别,每一类别的CU深度范围均在[Dmin,Dmax]之间,Dmin和Dmax分别代表CU可划分的最小深度和最大深度。具体深度范围决策如下:

(1)Dref∈[0.0,0.6)时,当前编码单元深度范围决策为[0,1];

(2)Dref∈[0.6,1.2)时,当前编码单元深度范围决策为[0,2];

(3)Dref∈[1.2,1.8)时,当前编码单元深度范围决策为[1,2];

(4)Dref∈[1.8,2.4)时,当前编码单元深度范围决策为[1,3];

(5)Dref∈[2.4,3.0)时,当前编码单元深度范围决策为[2,3]。

1.1.3 基于编码比特的提前终止

在基于空间相关性的深度范围预测算法的基础上,本文提出了基于编码比特的提前终止方案,用于减少CU划分过程中的编码复杂度。在当前深度下CU遍历所有预测模式后,如果CU的总编码比特数Btotal足够小,表明残差很低,当前深度是最佳深度。经统计,当前CU的Btotal小于等于阈值Tk时,当前深度是最佳深度,CU划分过程提前终止。

Btotal≤Tk

(5)

式中,Tk表示决策CU提前终止的阈值,k表示当前CU的深度。为了分析位于最佳深度CU的Btotal分布,使用4个测试序列(“sc_desktop”,“sc_programming”,“sc_robot”和“Basketball_Screen”)分析Btotal的阈值。经统计,在深度k为0,1,2时,阈值Tk的取值分别为35,50,27。

不同测试序列不同深度CU的Btotal在满足式(5)时的分布情况如表1所示。表1中,PY表示当前深度是最佳深度的概率,PN表示当前深度不是最佳深度的概率。从表1中可以看出,深度为0,1和2,且Btotal满足式(5)时,当前深度是最佳编码深度的概率分别为92.1%,94.1%和97.3%,说明基于Btotal的提前终止过程是有效的。

表1 不同深度下当前CU的Btotal分布 单位:%

1.2 预测模式快速选择算法

在测试模型SCC中,每个PU要依次遍历传统帧内预测模式(Conventional Intra Prediction,CIP)、帧内块复制模式及调色板模式。其中,传统帧内预测模式要遍历35种角度预测模式,帧内块复制模式要计算候选块与当前块之间的均方误差和,耗费大量时间。为了减少PU预测时间,本文提出一种预测模式快速选择算法。先交换PLT预测模式和IBC模式的编码顺序,然后根据已知的左侧PU预测模式Mlef和上方PU预测模式Mabv,来判断当前PU要跳过的预测模式。深度为0时,若满足模式条件(a){Mlef,Mabv}∈CIP,跳过IBC预测模式。深度为1或2时,若满足模式条件(a){Mlef,Mabv}∈CIP,跳过IBC预测模式;若满足模式条件(b){Mlef,Mabv}∈IBC,则跳过CIP预测模式。

1.3 本文算法流程

SCC组合快速算法包含编码单元快速划分算法和预测模式快速选择算法,两种算法结合后的总流程如图3所示,主要过程描述如下。

(1)输入一个CU;

(2)获取相邻CU深度,根据式(4)计算Dref,确定Dmin和Dmax;

(3)通过式(1—3)计算深度为0,1,2时的Vnum和Hnum,判断Fet及Fes的值,过程如图1所示;

(4)若当前CU深度小于Dmin或者Fes的值为1,提前划分CU,深度加1,转到步骤1,否则执行下一步;

(5)获取左邻PU和上邻PU编码模式Mlef和Mabv,根据预测模式快速选择算法确定要跳过的预测模式;

(6)获取Btotal,若Btotal满足式(5)或者Fet为1时,转至步骤8,否则执行下一步;

(7)若当前深度小于Dmax,深度加1,转到步骤1,否则执行下一步;

(8)结束CU划分。

图3 SCC组合快速算法流程

2 实验结果与分析

为验证本文算法的有效性,在SCC软件平台SCM6.0上,分别对视频编码联合协作团队推荐的3种类型11个视频序列进行编码性能评估测试,视频类型及相关参数如表2所示。视频序列的3种类型分别是运动的图形和文本(Text and Graphics with Motion, TGM)、混合内容(Mixed, M)、动画(Animation, A)。所有序列编码帧数都为100,且编码配置为All Intra,编码量化参数(Quantification Parameter,QP)取22,27,32,37。

本文通过BDBR(Bjøntegaard Delta Bit Rate)和ΔT来评价所提出方案的编码复杂度降低性能。BDBR表示算法对编码视频码率的影响,用于衡量编码性能;ΔT表示算法的时间增量,用于衡量编码复杂度,ΔT的绝对值越大越好,计算公式如下:

(6)

式中,toriginal和tproposed分别代表在全帧内配置下采用原始编码器和本文算法的平均编码时间。

编码单元快速划分算法FPCU和预测模式快速选择算法FSPM的性能如表2所示,可以看出,编码单元快速划分算法和预测模式快速选择算法的时间复杂度降低分别为24.08%和11.14%,说明算法可以有效减少深度遍历过程和模式编码过程,缩短率失真代价值的计算时间。复杂度降低最多的是序列“sc_SlideShow”,因为该序列纹理简单,平滑性和相关性都比较高;编码比特损失最小的是序列“sc_robot”,因为该序列最接近相机采集视频的动画视频,所包含的屏幕视频特征较少,本算法对其影响较少。

表2 不同测试序列下FPCU和FSPM算法性能

分别采用本文提出的面向屏幕内容视频的快速帧内编码算法、文献[9]提出的基于HEVC屏幕内容的IBC和CU提前终止的复杂度降低算法、文献[13]提出的基于HEVC屏幕内容编码的帧内快速算法进行算法性能评估,结果如表3所示。从表3中可以看出,本文算法在总平均BDBR增加1.64%的情况下,编码时间平均降低了32.72%。与文献[9]相比,本文算法总平均时间优化比文献[9]算法低14.12%,总平均比特率BDBR优于文献[9]算法0.12%,且各种视频类型的编码结果都优于文献[9],说明在针对屏幕内容视频编码过程中,使用灰度共生矩阵来判断视频内容的平滑性,可以减少CU划分的判决过程。对比文献[13],根据表中TGM,M和A类型视频序列的平均结果可知,本算法对TGM和M类型屏幕内容视频都具有较好的编码效果,文献[13]算法更有利于A类型视频,但就总平均结果而言,本文算法具有更好的时间优化性能。

表3 不同算法的性能对比

分别采用参考编码模型SCM6.0、本文算法和文献[8]提出的基于HEVC屏幕内容分类的快速算法在不同量化参数(即22,27,32和37)下,对2个不同测试序列“sc_SlideShow”和“MissionControlClip2”进行视频质量评估,得到的率失真曲线如图4所示。率失真曲线越靠近SCM6.0的率失真曲线说明算法在压缩效率性能上的损失越小,同时视频质量的损失越小。从图4可以看出,与文献[8]的率失真曲线相比较,本文算法更接近SCM6.0的率失真曲线,表明本文算法具有较好的编码率失真性能,在有效降低编码器的计算复杂度的情况下,视频编码压缩效率和视频质量的损失都比较小。

图4 不同量化参数下测试序列的率失真曲线

3 结束语

本文通过对视频特性的分析,提出一种面向屏幕视频的快速帧内编码算法。在All Intra编码配置下,有效降低了屏幕内容视频编码的复杂度,并保证了重建视频的质量。屏幕内容视频一共有4种类型,分别为运动的图形和文本TGM、混合内容M、动画A以及相机采集(Camera-Captured,CC)类型,本文只对相机采集类型之外的3种屏幕内容视频展开研究,如何对包括相机采集类型在内的屏幕内容视频进行编码优化是下一步研究的重点。

猜你喜欢
灰度共生编码
航空滤光片阵列多光谱图像条带灰度调整算法
HEVC对偶编码单元划分优化算法
采用改进导重法的拓扑结构灰度单元过滤技术
住院病案首页ICD编码质量在DRG付费中的应用
生活中的编码
天津港智慧工作平台灰度发布系统和流程设计
Arduino小车巡线程序的灰度阈值优化方案
优生共生圈培养模式探索
优生共生圈培养模式探索
在体验中走向共生