基于时空相关与纹理特性的HEVC 编码单元快速划分算法∗

2019-07-31 09:54
计算机与数字工程 2019年7期
关键词:纹理时空编码

汤 进 彭 勇

(江南大学物联网工程学院 无锡 214122)

1 引言

随着高清、超高清视频应用的急剧增加。目前应用最广泛的视频编码标准H.264/AVC[1]逐渐不能满足实际应用的需求,在这种情况下新一代视频编码标准 H.265/HEVC[2]应运而生。

HEVC 能够在H.264 基础上使压缩效率提高1倍,主要得益于其引入了一些编码新技术。其中采用具有四叉树递归划分结构的CU技术对视频质量和编码效率的提高具有重要意义。但其复杂的结构同时也显著增加了计算复杂度[3]。

相关研究者针对HEVC 中CU 划分复杂度过高的问题,提出了很多解决方法。周承涛等[4]利用时空相邻CU深度的相关性,提出深度单一性,缩小当前CU深度搜索范围。该算法能够保持较好地率失真性能,但减少的编码时间相对有限,有进一步改进空间;金智鹏等[5]利用前一帧相同位置CU 的划分结构,预测当前CU 的深度范围,并结合当前CU内亮度直方图的密集度特征进行精确调整;王超超等[6]利用空间相关性,将当前 CU 周围已编码 CU 的深度加权预测当前CU的深度范围;Nishikori等[7]用图像像素点方差来表示图像的纹理复杂程度,提前判断 CU 分割;Belghith 等[8]利用 Sobel 梯度算子对视频图像进行边缘检测,进而分析CU 的纹理复杂程度,根据纹理复杂度决定CU的编码深度。

文献[4~6]主要利用时间或空间相关性,从已编码完成的CU 入手预测当前CU 的深度范围,但CU 内具体划分结构并不能完全确定。而文献[7~8]主要利用当前CU纹理复杂度特性判断其是否划分,但随着视频分辨率的增加,方差或Sobel梯度计算等纹理特性提取函数的计算量也在增加。所以本文将CU 时空相关性与CU 内部像素点之间的纹理特性相结合共同决定CU的划分。根据时空相关性预测当前CU 的深度范围,在深度范围中将满足纹理特性的CU提前终止划分。这既减少了深度范围中CU划分的不确定性,也不用全深度下计算CU的纹理特性。

2 CU四叉树递归划分分析

在HEVC 帧内编码过程中,一帧视频图像被分割成许多尺寸为64×64 互不重叠的最大编码单元(LCU),然后以光栅扫描的顺序对每个LCU 进行编码。LCU 采用四叉树递归方式划分成许多CU。深度(Depth)为0,1,2,3 分别对应CU 的尺寸为64×64,32×32,16×16,8×8。在确定每一个LCU 最佳划分模式的过程中,需要进行40+41+42+43=85 次递归划分。递归划分过程如图1 所示,LCU 先自上而下分割成子CU,每个子CU 可以继续分割成子CU,直到深度为3 为止。然后自下而上进行CU 裁剪。对每个子CU 分别进行35 种帧内预测模式搜索,找到率失真代价最小的最佳预测模式,并将4个子CU 的率失真代价和与其父CU 的率失真代价进行比较,如果父CU 的率失真代价小于4 个子CU的率失真代价和,则这个父CU 不分割成4 个子CU,反之则分割。

图1 HEVC四叉树递归划分示意图

由此可见,整个LCU四叉树递归划分过程中计算量巨大。所以,研究CU 快速划分算法具有实际应用价值。

3 本文算法介绍

3.1 CU划分深度与时空相邻CU相关性分析

当前CU 与前一帧中相同位置处的CU 以及与周围已编码完成的CU 具有很强的相关性。如图2所示,Cur-CU 表示当前CU,L-CU、LU-CU、U-CU和RU-CU 分别表示当前CU 的左CU、左上CU、上CU 和右上 CU,Col-CU 表示前一帧中与当前 CU 在相同位置处的CU。为了分析时空相邻CU 深度信息之间的相关性。以LCU为单元,从HEVC的标准测试视频序列ClassA~ClassE 中选取10 个视频,具体视频序列如表1 所示,量化参数(QP)为22,27,32,37,进行全I 帧编码。用L-CU、LU-CU、U-CU、RU-CU 和 Col-CU 深度为 d 时,Cur-CU 同时为深度d 的概率描述其相关性,时空相邻CU 的深度的相关性如表2所示。

图2 相邻CU示意图

表1 标准测试视频序列的详细情况

表2 时空相邻CU深度的相关性

从表 2 中可知,Cur-CU 深度与 Col-CU、L-CU和 U-CU 的相关性较强,LU-CU 和 RU-CU 相关性较弱。所以本文选用Col-CU、L-CU 和U-CU 预测Cur-CU的深度范围。Cur-CU的预测深度定义为

约束条件:

其中N(本文中N=3)表示当前CU 时空相邻的CU个数,di为相邻CU 的深度,在图像边缘相邻CU 不存在时深度为0代替,ωi为相邻CU的权值。

目前关于用相邻已编码CU通过深度加权预测当前CU 深度的研究中存在一定的局限性,如文献[9~11]只考虑帧内的相邻CU 的关系,且采用固定的权值,难以针对不同的视频序列进行权值的调整。晏珂等[12]借鉴利用相邻CU内部像素的绝对差值和(SAD)表征其相关性,提出一个更能准确衡量其相关性的平方差值和均值(ASSD)计算相关性权值。但额外的ASSD计算也增加了计算复杂度。文献[13]提出时域或空域相邻CU 之间具有相似的RD 代价分布。所以本文利用RD 代价值表现时空相邻CU 之间的相关性关系。提出自适应权值ωi计算公式如下:

其中:ωCol-CU、ωL-CU和 ωU-CU分别为 Col-CU、L-CU 和 U-CU 深度的权重值。 RDCol-CU、RDL-CU和 RDU-CU分别为 Col-CU、L-CU 和 U-CU 的 RD 代价值。

根据式(1)计算的预测深度值Dpre,可以将CU深度预测范围分成3类。

1)当 0 ≤Dpre<1 时,当前 CU 深度范围为[0,1],跳过深度2和3。

2)当 1 ≤Dpre<2 时,当前 CU 深度范围为[1,2],跳过深度0和3。

3)当 2 ≤Dpre<3 时,当前 CU 深度范围为[2,3],跳过深度0。

与HEVC 中递归划分相比,平均跳过了2 个深度级,节省了较多的编码时间。但当CU 在划分的过程中,其深度是4 个子CU 的深度最大值。比如一个LCU 预测深度范围是[1,2],虽然跳过了深度是0 和3 的计算,但是并不知道哪些子CU 深度是1哪些子CU深度是2,只能按照HEVC标准算法进行处理。特别是当深度范围为[2,3]时,计算量仍然巨大。所以本文通过纹理特性判断提前终止一些CU划分。

3.2 CU划分深度与纹理特性的分析

HEVC 在进行帧内编码时,视频图像的纹理复杂度与CU的最终划分深度有很强的相关性。图像复杂区域适合用小尺寸的CU 进行编码,图像简单区域适合用大尺寸的CU进行编码。其中纹理简单区域主要表现为CU内像素值相差不大,或具有一定的方向性如每一行或每一列像素相差不大,则该CU就没有必要进行分割。为了减少在深度预测范围内CU的分割方式不确定而进行的多次率失真代价计算,加入纹理特性提取函数提取CU 的纹理特性用作部分CU分割的判断。本文从DC、水平和垂直3种纹理特性进行判断[14],计算公式如式(6)~(8)。

在式(6)~(8)中,MSD、MADH和MADV分别表示DC、水平和垂直方向的纹理特性,P(i,j)为CU在第 i 行第 j 列的像素值,M 为 CU 内像素均值,MH(i)为CU 第i 行像素的均值,MV(j)为CU 第j 列像素的均值,N表示当前CU的尺寸。

在每个CU 深度层均设定3 个纹理特性判断阈值。若当前CU 的MSD、MADH和MADV中某一值小于对应阈值,说明当前CU具有某种纹理特性,表明当前CU 的纹理简单,不用分割。不满足纹理特性的CU按照HEVC标准算法进行分割。

3.3 本文快速CU划分算法流程

步骤1:正常编码首帧,获取各位置处CU 的深度值,统计首帧中各深度下CU的纹理特性值,根据统计值选择合适的纹理特性阈值。

步骤2:根据式(1)得到当前CU 的深度预测范围,由3.1节设置起始划分和终止划分深度。

步骤3:根据起始划分深度开始划分,CU 若满足3.2 节纹理特性,则终止划分。否则由原算法进行划分。直至满足纹理特性或达到终止划分深度,结束CU划分。

4 实验结果与分析

为了评估本文算法的编码性能,本文以HEVC的参考实现软件HM10.0为参照进行试验。实验硬件 平 台 是 Intel(R)Core(TM)i5-3317U CPU@1.70GHz,内存为4GB,软件开发环境是Windows7,Visual Studio 2010。采用的编码配置模式为全I 帧(AI)模式,QP 选取 22,27,32,37,测试时使用JCT-VC 提供的标准视频测试序列ClassA~ClassE,统一编码100 帧。为了分析算法的性能,使用节省的编码时间百分比ΔET、比特率增量ΔBR、峰值信噪比增量ΔPSNR 作为衡量标准。计算公式为式(9)~(11)。

其中,Tproposed、BRproposed和 PSNRproposed分别表示本文快速算法的编码时间、比特率和峰值信噪比;THM10.0、BRHM10.0和PSNRHM10.0分别表示HM10.0 的编码时间、平均比特率和峰值信噪比。

表3 是本文算法与HM10.0 算法编码后的性能对比结果。根据表3,本文快速算法与HM10.0 相比,在码率升高0.94%,峰值信噪比降低0.08 的情况下,编码时间平均减少52.41%。图3 和图4 为HM10.0 和本文算法对序列“BasketballPass”的最终CU划分结果图。如图所示,仅有少数CU的划分方式不同,且深度偏差很小。可见本文算法划分比较准确。

由表3 中不同分辨率相同内容的视频序列“Flowervase”可知,本文算法对高分辨率的视频具有更好的编码性能。因为高分辨率视频,原本一个LCU 编码的内容就需要多个LCU 进行编码。单个LCU所包含的有用信息减少,但相邻LCU之间的相关性反而增加。根据表3 中视频序列“Johnny”和“Vidyo1”,本文算法对纹理简单的视频序列编码时间更快,因为视频序列纹理简单,相邻CU之间的相关性也较强,而且满足纹理特性跳过划分的CU更多。

表4 是本文算法与其它几种算法的编码性能对比。根据表4 中的数据,本文算法在编码质量略微降低和码率略微上升的情况下,减少更多的编码时间。

图3 HM10.0标准算法CU划分图

图4 本文算法CU划分图

表4 本文算法与各快速算法的性能比较

为了评价本文算法的编码性能,图5 是本文算法与HM10.0 算法编码标准视频序列Basketball-Pass_416×240_50.yuv 后的 RD 曲线图。本文算法与HM10.0 算法的RD 曲线基本重合。所以本文算法的编码性能与HEVC 标准算法相比,没有明显的下降。

图5 本文算法与HM10.0的RD曲线图

5 结语

本文算法将视频中存在的时空相关性和纹理特性应用于帧内编码单元的划分,减少了原算法中编码单元四叉树递归划分过程的复杂度。实验结果显示,在保证视频质量和码率的情况下,有效地降低了编码时间。本文算法对高分辨率和纹理简单的视频具有更好的编码性能。

猜你喜欢
纹理时空编码
跨越时空的相遇
生活中的编码
镜中的时空穿梭
《全元诗》未编码疑难字考辨十五则
基于BM3D的复杂纹理区域图像去噪
子带编码在图像压缩编码中的应用
肺纹理增多是病吗?
玩一次时空大“穿越”
Genome and healthcare
TEXTURE ON TEXTURE质地上的纹理