适用于4K分辨率视频的HEVC帧内编码快速算法
2017-06-01曾飞洋郎文辉贾尚柱
曾飞洋 郎文辉 贾尚柱
摘要:HEVC作為H.264视频编码标准的替代者,它以更高的编码复杂度来获得更高的编码性能。针对HEVC帧内编码计算复杂度高的问题,本文提出了一种HEVC帧内编码快速算法。其思想是通过计算灰度共生矩阵特征因子来衡量当前编码块的纹理复杂度,并对帧内编码块尺寸划分进行快速决策。当相邻编码块复杂度极为接近时,让当前编码块划分方式向已编码块靠拢。实验采用全帧内模式配置对4K分辨率视频进行编码。结果表明,该算法与HM-16.0相比,编码质量基本不变,编码时间平均减少64%。
关键词:HEVC;帧内快速编码;CU划分;GLCM;4K超高清
中图分类号:TP37 文献标识码:A 文章编号:1009-3044(2017)08-0180-03
1概述
随着终端硬件设备的改良以及4G网络的普及,人们对视频分辨率和质量的需求不断提高,4K、8K分辨率的视频已经在部分领域投入应用,超高清视频需求的扩大势必带来视频压缩技术上的革新。视频编码联合工作组Joint Collaborative Teamon Video Coding(JCT-VC)在2013年1月正式发布了最新的视频编码标准HUgh Efficiency Video Coding(HEVC),作为H.264/AVC标准的替代者,HEVC在同等视频质量下码率比H.264/AVC减少一半。为了达到更高的编码性能,HEVC采用了更为灵活的分块结构,提出了基于四叉树结构的编码单元递归划分技术和多角度帧内预测模式选择技术。为了寻找最优的CU划分方式,HEVC引入了编码单元(CU)、预测单元(PU)和变换单元(TU)3个基本单元,递归遍历所有可能的CU划分方式,根据率失真(RD)代价(RDCOST)判决编码块的划分及进行最优预测模式的选择。新技术的应用,使HEVC能够更加灵活和精细的进行预测、变换和编码,使得压缩编码后的效果更能符合视频图像本身的特性。
然而,HEVC编码性能的显著提升是以计算复杂度的提高为代价的。与H.264/AVC相比,在同等应用条件和视频质量下采用HEVC进行编码的时间将会增加几倍甚至十几倍,这显然无法满足实时编码的需求。其中,搜索编码树单元中的最优四叉树结构使得编码过程变得尤为复杂。为此,部分学者提出了HEVC帧内CU快速划分算法。对HEVC帧内CU划分算法进行改进的现有方法主要包括利用视频图像本身纹理特性或标准编码分割统计特性来进行CU递归分割的提前终止或跳过。然而,前者侧重于对当前编码块的纹理特性分析,却忽视了纹理复杂度相似的相邻块在块划分方式间的相似性。后者根据统计特性来确定CU深度范围,却忽视了纹理复杂度相似的相邻块在预测模式间的关联性。在已有优化算法的基础上,本文提出了一种低复杂度的帧内编码算法,该算法通过计算编码块的灰度共生矩阵特征值来获得编码块纹理复杂度的衡量指标,并提前决断CU的划分方式;同时,针对帧内模式选择过程,将当前编码块与相邻已编码块的纹理复杂度进行对比,剪裁需计算的预测模式,进一步降低编码复杂度,减少编码时间。
2灰度共生矩阵及其特征值应用
CU的划分和视频图像特征有密切相关,图像细节较为丰富的区域,CU划分得更为精细;相反,对于图像较为平坦的区域,则采用较大尺寸的CU进行编码。为了衡量图像块的纹理特征,本文选择了计算图像灰度共生矩阵特征值的方法来描述图像块的纹理复杂度。灰度共生矩阵是一种对图像处理进行定量描述的方法,它能反映图像灰度关于方向、相邻间隔、变化幅度的综合信息,是分析图像的局部模式和它们排列规则的基础方法。关于图像的复杂度,本文先计算灰度图像得到它的共生矩阵,并通过计算这个共生矩阵得到矩阵的部分特征因子来分别代表图像的某些纹理特征。然后将几个纹理特征值加权求和,得到图像块的纹理复杂度。
GLCM在计算时要考虑四个变量,分别是窗口大小Ⅳ、图像灰度级L、方向θ(一般有四种取值0°、45°、90°、135°)和像素统计距离d。若图像的灰度级为L,则GLCM为L阶矩阵,该矩阵的第i行、第j列各元素值p(i,j)于方向为θ、相距为d且像素值分别为i和j的像素对的出现次数。灰度共生矩阵的计算量由窗口大小Ⅳ和图像灰度级L共同确定。在本文中,窗口大小Ⅳ即为编码块的长,而为简化计算复杂度且不影响图像的纹理特征,将灰度级L设为16。角度选择为水平方向,统计距离选择为3。
灰度共生矩阵的特征因子包括熵、边缘比率、反差、相关度、能量等。然而描述因子之间会存在一定的相关和冗余,如果采用过多的因子,则会带来更大的计算量,而且也不利于对复杂度进行准确的描述。经分析考虑后,本研究选择了熵(Ent)、反差(con)和能量(Asm)3个特征因子,他们的计算公式分别为:
(1)
(2)
(3)
Ent可以用于度量图像纹理的随机性。Con是描述纹理反差即纹理粗细的统计量,它可以反映图像纹理的清晰程度。Asm是一种表示灰度分布一致性的统计量,是图像灰度分布均匀性的度量。描述当前块纹理复杂度时,首先分别对这3个指标进行计算,并进行加权求和,其中熵和反差的权值为1,能量的权值为-1,因为前2个因子与复杂度是正相关的,而后两个是负相关的。编码块纹理复杂度计算公式为:
Cop=Ent+Con-Asm (4)
Cop可以很好地描述图像的纹理复杂度,其值越大,说明当前编码块的纹理复杂度越高,反之纹理复杂度越低。通过对Cop的分析,我们可以对当前编码块的尺寸进行快速决断。
3基于灰度共生矩阵特征值的帧内快速编码算法
3.1编码块尺寸快速决策
图1为本文提出的编码块尺寸快速决策算法的流程图。depthcur和depthner分别为当前CU和相邻CU的深度,Copcur和Copcur分别为当前编码块和编码块的纹理复杂度。算法首先根据当前编码块像素值计算当前编码块的纹理复杂度Copcur,然后将Copcur与各个阈值及相邻已编码块的Copner做比较,进行当前编码块尺的快速决断或预测模式的剪裁。其中,各个阈值的确定是保证算法正确性的关键,再通过大量实验的对比分析后,将低复杂度、高复杂度及高相似性3个阈值分别确定为0.4、4.5和0.2。具体的算法流程如下:
1、首先计算当前CU块的纹理复杂度Copcur,其初始深度depth为0。如果Copcur值小于0.4,則当前编码块被认为是一个纹理简单的编码块。被判定为简单纹理的编码块将会以当前深度进行编码,大于当前深度编码块的递归计算将会被终止,从而减少了编码的计算量;
2、如果Copcur值大于4.5,则其被认为是一个纹理复杂的编码块。被判定为复杂纹理的编码块将会以更大的编码深度进行编码,跳过当前编码深度的率失真代价的计算,从而可以减少编码的计算复杂度;
3、如果当前编码块Cop不符合上述两条判定条件,将Copcur和Copner作对比。对比次序为,先与左侧最上CU的Copcur对比,再与上方最左CU的Copcur对比,期间若符合判定条件,跳转到4。判定条件为,若二者纹理复杂度差的绝对值小于0.2,则认为两编码块极为相似,将当前块的块划分方式向相邻已编码块靠拢。若左侧和上方编码块都不符合判定条件,按原始算法执行率失真计算。
4、此时,若在第3步判决的相似相邻块的编码深度大于当前块,则当前块将会跳过当前编码深度的率失真代价的计算,以更深的编码深度进行编码;若相邻块的编码深度小于等于当前块,则当前的块划分被认为是最佳的CU划分方式,程序将以当前深度进行编码。大于当前深度编码块的递归计算将会被终止。
3.2对预测模式的剪裁
在图像中,相邻的图像区域的纹理复杂度及纹理方向有可能极为接近,这在编码过程中表现为该区域内,相邻的编码块有着相似的划分方式和预测模式。根据此情况,本文提出了一种帧内预测模式剪裁方法,裁剪需要执行的帧内预测模式以降低算法的复杂量。
在满足前文相邻两CU纹理复杂度极为接近,即|Copner-Copcur|<0.2,且相邻已编码CU的编码深度小于等于当前CU的条件下,执行以下操作:
1)以相邻CU为,LeftCU为例,首先获取,LeftPU的预测模式,若LeftPU的预测模式号为N(6 N 30),则执行预测的预测模式为DC模式、PLANAR模式和预测号为从N-4到N+4的9种角度模式。例如,若LeftPU的预测模式号为14,则候选的预测模式为DC模式、PLANAR模式和模式号为10-18的共11种预测模式;
2)若3N5或N 31,N-4到N+4可能超出角度模式的界限(2-34),此时做循环映射。如相邻预测模式号N为3,则-1到1对应的预测模式号都不是角度模式,此时选取32-34三种模式作为替代的预测模式。此时所需执行的预测模式为DC模式、PLANAR模式、32-34和2-7共11种模式;
3)若N为0或1,即DC或PLANAR模式,按HM-16.0中原始算法进行预测模式选择。
若相邻CU为Above CU,算法执行流程与上述方法相同。
4实验结果及分析
为了验证本文算法的有效性,该算法将在HEVC官方测试模型HM-16.0上实现。实验平台的硬件配置为Intel(R)Core(TM)i5-4590 CPU@3.30GHz,内存为4.0GB。配置模式选用全帧内模式,QP分别设置为24、28、32、36。测试序列选用4个3840*2160@120fps的视频序列。
在实验中通过比较本文算法带来的速度增益及付出的相应代价一峰值信噪比的变化(△PSNR)、码率变化率(△BR)和节省时间百分比(TS)床衡量本文算法的性能。各项指标的计算公式如下:
(5)
(6)
(7)
其中PSNRproposed、BRproposed和Timeproposed分别表示采用本文算法编码后的视频峰值信噪比、视频平均码率和编码时间;PSNRHM、BRHM、和TimeHM分别表示采用HM-16.0算法编码后的视频峰值信噪比、视频平均码率和编码时间。
实验结果详见表1。实验结果表明,与HM-16.0相比,本文提出的算法在码率增加0.74%、PSNR减少0.0159dB的条件下,可以减少64.24%的编码时间。本文算法也与算法进行了比较,编码时间可节省8.16%。因为算法采用了将CU、PU和TU尺寸放大的方法,则其所需编码块数更少,取得了降码率的效果。本文中用来衡量纹理复杂度算子的计算复杂度更低,而且只需要计算当前编码块的纹理复杂度。因此,本文提出的算法在与HM-16.0保持码率几乎不变的情况下,在编码时间的节省上具有一定的优势。
图3给出了本文算法与HM-16.0的率失真性能比较。从图可以看出,本文算法与HM-16.0的率失真性能几乎完全相同。因此,该算法在大大缩减编码时间的条件下保持了相同的编码质量。
5结论
本文提出了一种适用于4K分辨率视频的HEVC帧内编码快速算法。在CU划分过程中,利用灰度共生矩阵特征值加权和来检测当前CU的纹理复杂度及相邻CU的相关性,以此来对CU划分进行提前判决,并对候选预测模式进行剪裁。实验对4个4K视频序列进行编码测试,结果表明,该算法和HM-16.0相比,在码率提高0.74%,PSNR减少0.016dB的情况下,可减少64%的编码时间。