张量结构和活动值的HEVC-SCC 帧内快速算法

2024-05-09 12:56陈杰林琪张璐阮文斗
武夷学院学报 2024年3期
关键词:张量编码决策

陈杰,林琪,张璐,阮文斗

(武夷学院 信息技术与实验室管理中心,福建 武夷山 354300)

随着互联网的发展,视频通信在各个领域的应用也越来越普及,如远程视频教育、远程视频会议、无线投屏等技术应用越来越广泛。人们对于视频的需求越来越大,不再限于由传统摄像机所拍摄的自然内容图像,而是更多地使用由计算机直接生成的屏幕内容图像。高效视频编码标准HEVC[1-2]主要是针对由传统摄像机所拍摄的自然内容图像所设计的,如果直接对屏幕内容图像进行编码易出现如振铃、方块等失真现象,无法满足人们对视频质量的需求,所以HEVCSCC[3]应运而生。HEVC-SCC 增加了4 种新的编码工具——帧内块复制[4-5]、调色板模式[6-7]、自适应颜色空间变换[8-9]、自适应颜色矢量分辨率[10-12]。

HEVC-SCC 是HEVC 的扩展,编码树单元CTU同样需要进行基于四叉树进行CU 的深度划分,在划分的过程中需要逐一对每种预测模式进行RDO 计算,且SCC 中加入了新的预测工具,使得这一过程带来了巨大的计算复杂度。所以在CU 划分过程中存在优化的空间,可以研究如何在CU 划分过程中跳过不必要的深度和模式预测。CU 划分需要遍历4 个深度,最终将4 个深度下的代价进行比较选择出最佳深度进行编码,如果在遍历深度前就能够精准确定当前CU 的最佳深度,只需要找到当前深度下最优预测模式就能对其进行编码,显然这样可以减少大量遍历深度的编码时间,从而提升编码效率。

基于以上本文提出基于图像结构张量进行提前判别的划分决策和基于CU 活动值的HEVC-SCC 帧内模式预判,最后结合划分决策和模式预判提出基于结构张量和活动值的HEVC-SCC 帧内快速算法。

1 基于结构张量的CU 尺寸划分决策

HEVC-SCC 在编码块尺寸大小选择上还是采用RDO 的方式。在AI 模式下以一个64×64 大小的CTU为例,编码器首先将此CTU 当作一个尺寸为64×64的CU 进行模式预测,选出最优模式之后即为深度0的率失真代价结果,之后向下划分为4 个尺寸为32×32 的子CU,子CU 会重复父CU 的模式预测过程并继续向下划分直到深度为3 即子CU 尺寸为8×8 时停止,编码器会将4 个子CU 的率失真代价总和与父CU 的率失真代价比较来确定编码尺寸为父CU 尺寸或子CU 尺寸。表1 给出了测试序列“Console”“Slideshow” 的最优深度比例。可以看出对于序列“Console”,只有3.7%的CU 会选择深度0 为最优深度,但是所有的CU 都要遍历深度0 下的所有预测模式,对于最优深度不是0 的CU 而言遍历深度0 下所有预测模式的过程就是“不必要”的过程,即省略这一过程不影响视频质量。而测试序列“Slideshow”中有48.32%的CU 都选择深度0 为最优深度,对于这部分CU 来说,遍历深度1、2、3 下所有预测模式的过程就是“不必要”的过程。

表1 测试序列最优深度分布Tab.1 Optimal depth distribution of test sequence

深度划分是编码所耗时间最长的过程,由于SCC新增了编码工具使得在深度划分上比HEVC 的计算更加复杂。所以如果能够在深度划分时对CU 尺寸进行预决策,以跳过不必要的预测过程,就能有效降低编码时的计算复杂度。

1.1 图像特征选取

考虑到SCC 在编码时对均匀和小的全局运动区域常用大尺寸编码,复杂或大的全局运动区域常用小尺寸编码。本章采用结构张量[13-14]来描述CU 的匀称性,通过结构张量判断CU 复杂度的高低。

对CU 中的每一个像素点定义一个亮度域,I(x,y)即为相对位置为(x,y)的像素点的亮度值。对于相对位置为(x,y)的像素点,其梯度向量有水平分量gx和垂直分量gy,定义为

在(x,y)位置,张量矩阵J(x,y)为

由张量矩阵可以得出其有两个特征值λ1和λ2为

λ1为切线方向上的特征值,而λ2为法线方向上的特征值,这两个特征值能够表示CU 的均匀性,对每个λCTU公式为

式中:N 为每个CTU 对应的像素个数,在公式里N 为64,λij为每个像素(x,y)的张量矩阵J(x,y)的特征值λ1。

1.2 划分决策

通过以上分析,可以通过提前设置判决条件,在SCC 进行编码时对CU 划分进行提前终止或跳过。由实验可得,当CU 纹理越复杂时λCTU越大。设置以下两个条件:

在CU 进行编码遍历当前深度所有预测模式前,对条件(7)和条件(8)进行判断。如果满足条件(7),则表明当前CU 的纹理较复杂不适用于当前CU 尺寸,则编码器会跳过当前深度的遍历进入下一深度的划分。如果满足条件(8),则表明当前CU 的纹理简单适用于当前CU 尺寸,无需再向下划分为更小尺寸的CU,编码器跳过下面深度的遍历。如果两个条件都不满足则正常编码遍历完当前深度的预测模式后进入下一深度的划分,对下一深度重新开始两个条件的判断。

通过大量实验后,本章对各个深度下的阈值设置如表2,能够有效减少CU 划分时间,从而提升编码速度。

表2 各个深度下的区间范围Tab.2 The interval range of at each depth

2 基于活动值的HEVC-SCC 帧内模式预判

由于SCC 沿用HEVC 的编码框架,其还是逐层、逐一地对每种预测模式进行RDO 计算以选取最优预测模式,所以在预测模式中的可优化空间也很大。

屏幕内容图像和自然内容图像在特性上有明显差异性,屏幕内容图像中常包含着大量重复的文本、颜色单一的背景、锐利的边缘等。新增加的编码工具虽然极大地提升了编码效率,能够有效针对屏幕内容减小码率,但是遍历过程中需要遍历所有模式显然增加了不必要的预测时间。在实际编码过程中,SCC 对于包含了屏幕内容和自然内容的视频序列中的图像块采用相同的编码过程,对自然内容同样要进行IBC模式、PLT 模式的率失真代价计算,对屏幕内容也要进行多角度帧内预测模式的率失真代价计算,这一过程增加了编码的计算复杂度,如果能够提前区分屏幕内容和自然内容图像块跳过不必要的预测模式,显然可以使这一过程的计算量降低且不会影响视频的质量。

2.1 自然CU 与屏幕CU 的差异性分析

HEVC-SCC 在帧内预测编码时与HEVC 并没有太大的不同,但是增加了IBC、PLT 模式导致复杂度增大,所以在SCC 测试模型(SCC Test Model,SCM)中对IBC、PLT 模式进行分析十分重要,可以作为模式跳过的理论依据。为了书写方便,本文在后续中将包含由传统摄像机所拍摄的自然内容图像的CU 称为自然CU,将包含文本、动画、图表等由计算机直接生成的屏幕内容图像的CU 称为屏幕CU。图1 为JCT-VC 发布的标准测试序列中M 类的“MissionControlClip3”序列的第一帧,图中编号1 的CU 为自然内容CU,编号2的CU 为屏幕内容CU。图2 给出了自然CU 和屏幕CU 的像素点信息,图2(a)为LCU 地址为100 中宏块地址为1721 的自然CU 的亮度值信息,图2(b)为LCU 地址为230 中宏块地址为3563 的屏幕CU 的亮度值信息。

图1 “MissionControlClip3”序列的第一帧Fig.1 The first frame of the ' MissionControlClip3 ' sequence

图2 CU 的亮度值信息图Fig.2 The brightness value information of CU

从图3 可以看出,自然CU 与屏幕CU 在像素分布上有明显区别,自然CU 的像素点值没有明显规律,像素点之间的亮度值差异不明显,而屏幕CU 有着如图3(b)中绿色方框所标注的垂直或水平的锐利边缘,每一个绿色方框内其亮度值与两边有明显差异,并将CU 分割成像素值大部分集中在某个数值的两个区域。SCC 中新引入的IBC、PLT 模式极大地提升了对屏幕内容的编码效率,文献[7]中统计得出IBC、PLT 分别提升了30%、15%的编码效率,但是IBC、PLT 在编码时所占用的时间也非常高,在测试序列“Programming”中甚至达到了67.77%。

图3 联合算法流程框图Fig.3 Joint algorithm flow chart

2.1 图像特征选取

屏幕内容图像是包含文本、动画、计算机图形图像和图形等计算机直接生成的视频内容,自然内容图像是摄像机拍摄的视频内容,一个视频有时同时包含屏幕内容图像和自然内容图像的混合。自然内容图像可由HEVC 进行高效编码,但屏幕内容图像因其不连续的特点,HEVC 无法对CU 中突变的像素进行有效预测,所以必须使用SCC 引入的IBC 模式和PLT 模式进行编码。利用像素突变的特点在预测前对图像进行分类,为屏幕内容图像和自然内容图像设置不同的预测模式候选集,从而进行模式决策。

与自然内容CU 相比,屏幕内容CU 的像素点常包含着几块由水平或垂直的边分割而成的像素点值相同的区域。所以对编码单元CU 提取水平活动值ActHCU和垂直活动值ActVCU[15]作为特征,公式为

式中:pY为当前编码单元CU 内所有的像素点集合,pY(i,j)为CU 内相对位置(i,j)的亮度值,pY(i-1,j)为CU 内相对位置(i,j)水平方向右边的第一个亮度值,pY(i,j-1)为CU 内相对位置(i,j)垂直方向下方的第一个亮度值。

对于每个CU,对其计算其水平活动平均值及垂直活动平均值为

式中:N 为CU 的像素点个数。

2.2 模式预判

使用ActH和ActV是因为SC 通常包含锐利的边缘,当存在锐利的边缘时,ActH和ActV的值有一个会比较大。本章在这里对每个深度设置以下2 个条件,通过判别当前CU 的ActH和ActV的值来跳过不必要的预测模式的率失真代价计算,条件如下:

当CU 进行遍历IBC、PLT、35 种角度模式预测前,对当前CU 的ActH和ActV的值进行判别。首先对公式(13)进行判断,如果当满足(13)里其中一个条件时,则表明当前CU 含有锐利的边缘,则将IBC 和PLT模式加入到预测模式候选集中进行率失真代价计算,否则直接跳过IBC 和PLT 模式。其次对公式(14)进行判断,如果三个条件中有一个满足时则说明当前CU纹理简单,只将水平、垂直、DC、PLANAR 加入预测模式候选集中进行率失真代价计算,否则说明当前CU纹理复杂,35 种角度预测模式均不跳过,采用SCM 标准编码器的正常过程进行编码。对T1、T2、T3、T4分别取1、1、0.5、5。

3 基于结构张量和活动值的HEVC-SCC 帧内快速算法

提出HEVC-SCC 的帧内划分决策以及帧内模式预判决策,SCC 在编码时对CTU 采用基于四叉树遍历所有预测模式进行RDO 的方式,不论是CU 尺寸划分过程还是模式选择上都有可以改进的空间,所以在做HEVC-SCC 优化算法时应该不仅要考虑到划分过程也要注重模式选择部分。划分决策和模式预判决策可以带来一定的时间节省,但如果想要获得较大的时间节省,会引起BDBR 的大幅度提高导致图像质量下降,所以划分决策和模式预判决策相结合,以在时间节省和BDBR 之间取得较好的平衡。基于以上,提出了基于结构张量和活动值的HEVC-SCC 帧内快速算法,对联合算法的流程进行详细介绍并进行仿真实验。

3.1 联合算法流程

图3 是所提算法的流程框图,其具体步骤为:

(1)帧内预测开始,对当前CTU 提取其结构张量,并统计张量矩阵特征值λ1的值,求得λCTU;

(2)对CU 的深度初始化,判断λCTU是否在当前CU的深度区间范围内。如果否,则执行3。否则跳转到4;

(3)判断λCTU是否大于区间上限。如果是则跳转至9,否则停止向下划分CU 深度,执行4 和5 跳过6结束快速算法;

(4)计算当前CU 的ActH和ActV的值,当满足条件ActH>T1‖ActV>T2时将IBC、PLT 加入模式候选集中,否则跳过IBC 和PLT 模式;

(5)判断ActH和ActV的值是否满足条件(ActH<T3&&ActV<T3)‖(ActH>T4&&ActV<T3)‖(ActH<T3&&ActV>T4),如果满足条件则只将DC、PLANAR、模式10、模式26 加入预测模式候选集中,否则将35 种帧内预测模式加入预测模式候选集中;

(6)CU 划分至下一深度。

3.2 实验结果及分析

对算法进行测试以便直观地体现此算法的编码性能,所以将HEVC-SCC 测试平台SCM-8.8 作为测试环境。测试平台中进行实验的主要参数为全帧内(All Intra,AI)环境下量化参数(quantification parameter,QP)选择22、27、32、37 四种。表3 中列出SCC 进行测试的测试序列和相应的部分参数信息。

表3 测试序列及参数Tab.3 Test sequences and parameters

对于所提算法实验结果的性能评估使用的参数是BDBR 和ΔTime,BDBR[16]所提算法和源码版本HEVC-SCC 编码器的比特率和PSNR 之间变化的计算公式,ΔTime 表示的是源码版本HEVC-SCC 编码器与所提算法之间时间变化的公式。对于实验结果而言,BDBR 越小ΔTime 越大说明所提算法的性能越好,ΔTime 的公式为

式中:timeproposed指全I 帧的前提下所提算法在QP 设置为22、27、32、37 时的平均编码时间,timeanchor指在全I 帧的前提下SCM-8.3 算法在QP 设置为22、27、32、37 时的平均编码时间。

表4 列出了第一章、第二章所提出的基于结构张量的划分决策、基于活动值的模式预判的实验结果。从表4 可以看出,与SCM-8.8 相比,模式预判在BDBR 减少0.82%的情况下时间节省了12.57%,划分决策在BDBR 减少1.26%的前提下时间节省了16.13%。

表4 划分决策、模式预判决策与SCM-8.8 算法的比较Tab.4 Comparison of partition decision,pattern pre-judgment decision and SCM-8.8 algorithm

表5 列出本章所提联合算法与文献Lei 等[17]、Tsang 等[18]所提算法实验结果的比较。从表5 中可以看出,所提算法与SCM-8.8 相比,在BDBR 增加1.95%的情况下,编码时间平均减少了26.65%。其中,“SlideShow”和“Desktop”序列节省的编码时间分别达到了39.81%和39.85%。这是由于“SlideShow”序列有许多纹理简单的区域,所以在编码时总是大概率的停留在深度0 而跳过其它深度的预测,而“Desktop”纹理复杂,所提算法在编码时易跳过深度0、1 的预测从而降低计算复杂度。与文献[22]相比,所提算法在BDBR减少0.11%的情况下,时间节省提高了5.42%。相比于文献[20],本文算法在调整阈值将速度节省提高至30.26%的情况下BDBR 仅为2.41%,为使得BDBR 与时间节省有更好的平衡性,将BDBR 控制在2%以内。

表5 所提联合算法与文献算法的比较Tab.5 Comparison between the proposed joint algorithm and the literature algorithm

为进一步验证本章算法的压缩性能,将所提算法中几个序列的率失真曲线与SCM-8.8 测试序列的率失真曲线进行比较,如图4 所示。由图4 可以看出,所提算法的率失真曲线与SCM-8.8 算法的率失真曲线基本重合。这说明了所提算法的压缩性能与SCC 标准编码器的压缩性能基本相同。

图4 所提联合算法和SCM-8.8 标准算法的率失真曲线对比Fig.4 Comparison between the rate-distortion curves of the proposed joint algorithm and the SCM-8.8 standard algorithm

3 展望

针对屏幕内容视频帧内编码复杂度高的问题,本文提出了基于结构张量和活动值的HEVC-SCC 帧内预测快速算法,降低了编码复杂度且能够节省一定的编码时间,但是研究方案也存在着许多可以改进的地方,在未来的研究工作中还可以继续进行优化研究,帧内编码的优化空间还很大,在这里对未来的工作提出展望。

优化算法中模式决策部分,在CU 提取特征值之后先处理IBC、PLT 的跳过再进行角度模式的选择,后续工作可以再次结合CU 特性选取不同的特征,对角度模式做进一步的细分以降低编码计算复杂度。在划分决策部分,所提算法是根据结构张量特征值在各个深度下依次判别以节省时间,在不同深度所能够产生的优化效率不同,如果能够对不同深度下采用不同的CU 特性以进行判别,则可以进一步降低复杂度且提高准确率。

不管是在划分决策和模式预测上,本文对特征值的阈值选取都是通过大量的实验之后人工确定的,这也导致了在阈值选取上耗费了大量时间之后,虽然具有一定的科学性,但是在精度上无法做到完全准确。所以在特征提取方面,深度划分和模式选择可以结合机器学习对特征进行分析,通过合理的数据模型得出阈值,以提高预测的准确性。

猜你喜欢
张量编码决策
为可持续决策提供依据
基于SAR-SIFT和快速稀疏编码的合成孔径雷达图像配准
偶数阶张量core逆的性质和应用
四元数张量方程A*NX=B 的通解
《全元诗》未编码疑难字考辨十五则
子带编码在图像压缩编码中的应用
决策为什么失误了
Genome and healthcare
扩散张量成像MRI 在CO中毒后迟发脑病中的应用
工程中张量概念的思考