APP下载

基于背景帧的监控和会议视频帧间快速算法

2020-11-18李萌芳张倩云

计算机工程与应用 2020年22期
关键词:像素点复杂度纹理

黄 胜,李萌芳,张倩云

重庆邮电大学 通信与信息工程学院,重庆400065

1 引言

随着高清、超高清和高帧频数字视频消费需求的增长,人们对数字视频的压缩效率提出了更高的要求。相比于H.264/AVC,HEVC 加入了更先进的编码技术,如更灵活的编码单元划分、更多的预测方向等,使得其与H.264/AVC 在获得相同视频图像质量条件下,可节省50%以上的编码比特流[1],但编码计算量增大了2~3倍。HEVC的高复杂度阻碍了其在视频领域的快速应用,如何在保证一定的视频质量的情况下,降低HEVC的计算量,是目前很多专家和学者研究的重点。

为了降低HEVC的编码复杂度,文献[2]根据视频图像运动的快慢,设置了两个不同的阈值用于判别运动程度,以提前终止CU 划分过程。文献[3]以当前CU 的空间相邻CU 的深度划分信息作为最优特征属性,建立CART 模型且进行测试评估,然后利用建立的CART 模型对当前CU 进行快速划分。文献[4]通过设置率失真阈值来提前结束帧间PU 模式选择。文献[5]采用预测相邻CU 深度率失真代价模型,在编码当前CU 深度后快速预测下一深度级CU 的率失真代价。文献[6]利用当前CU 与时空域相邻CU 的深度信息,初步预测当前CU的深度范围,并根据当前CU与邻近CU的运动矢量信息对当前CU 深度选择做进一步终止判断。文献[7]通过CU 深度时空相关性来预测当前CU 的深度范围,减少深度的遍历次数。文献[8]通过光流法计算金字塔运动发散(Pyramid Movement Diverges,PMD)的特征值,从而决定当前CU的划分。

以上提到的方案在缩短编码时间,降低编码复杂度方面有明显的效果,但是对于监控和会议视频来说,其特点没有被充分利用来降低编码复杂度。监控和会议视频一般具有背景相对固定不变,前景变化内容较少,场景相对稳定的特点。通常由固定摄像机捕获的监视和会议视频,利用它们的特殊特征(例如,在一段时间内相对固定的背景)对于高效视频编码是至关重要的[9]。本文利用会议和监控视频的特性,提出了一种基于虚拟背景帧的帧间预测快速算法。首先,考虑到会议和监控视频中背景相对固定不变,提出了一种基于像素级的策略生成虚拟背景帧。以生成的背景虚拟帧为基准,制定判别方法以判定当前编码的CU是纯背景编码块(PBCU)、背景编码块(BCU)、前景编码块(FCU),还是混合编码块(XCU)。然后,对不同类型的编码块,制定CU 快速划分方案和PU模式选择策略,减少其遍历过程,以降低帧间预测编码的复杂度。

2 基于虚拟背景帧的CU划分和PU模式选择

2.1 HEVC中的CU和PU特性

HEVC 中仍沿用混合编码结构,但对编码单元(Coding Unit,CU)、预测单元(Prediction Unit,PU)以及变换单元(Transform Unit,TU)采用了灵活的四叉树划分。一个CTU(Coding Tree Unit)可以按照四叉树结构分解为若干方形编码单元,同一层次的CU必须是同一尺寸的4 个方块,最多可有4 层分解,即64×64、32×32、16×16和8×8。一个编码单元CU可以划分为一个或多个预测单元PU,CU 到PU 仅允许一层划分,最小的PU 为4×4。划分可以是对称的,也可以是不对称的,不对称的划分模式统称为非对称运动划分(Asymmetric Motion Partitioning,AMP)。一个2N×2N(N 可以是4、8、16、32)的CU可划分为8种PU方式:N×N、2N×2N、N×2N、2N×N、nL×2N、nR×2N、2N×nD、2N×nU 。帧间预测时可以在这8种方式中任意选择,帧间预测的跳过模式只允许选择2N×2N 这种方式[10]。

HEVC 的测试模型(HEVC Test Model,HM)采用全搜索遍历方式,在CU层遍历所有的深度,选择最小率失真对应的PU 作为最佳PU。这种方法能得到高质量的视频,节省编码比特率,但大大增加了编码的运算量。HM采用了一些方法来优化编码器,但是对于监视和会议视频,仍然需要通过编码器来进一步优化编码复杂度。为此,本文提出使用虚拟背景帧来实现CU分类,然后自适应地加速编码过程。该方法利用虚拟背景帧将编码CU 分为PBCU、BCU、FCU 和XCU,然后对每类CU采用不同的CU分区终止和PU模式选择方案。

2.2 生成虚拟背景帧

背景建模技术在智能监控系统中已被广泛应用,常用的背景建模方法有高斯混合模型(Gaussian Mixture Model,GMM)、Mean-Shift算法和背景差分法等。这些算法使用了大量的存储空间以保存训练的中间结果,实现过程有一定的难度。因此,本文采用基于像素统计分析的方法生成背景虚拟帧。

在视频编码中,因为图像块本身较大且在编码后块划分大小并不统一,所以在块边界出现不匹配的问题,且不能保证块本身干净(没有前景信息),导致得到的背景参考帧质量不高。因此,本文设计的背景建模方案是基于像素级的。像素是图像的基本单位,以像素为单位会比以块为单位得到的虚拟背景帧更加注重细节,不但边界不匹配的问题会得到解决,同时图像本身更加接近背景。为了得到更高质量的背景虚拟帧,采用原始的视频数据进行虚拟背景帧的训练,这样训练得到的虚拟背景帧能够更精准地对CU进行分类。视频帧之间对应像素存在相似对应关系,若为背景部分,则像素值相同或相差不大。监控和会议视频的前景一直处在运动过程中,对应像素位置为背景像素的概率往往会较高。因此对大量相邻帧对应位置像素进行统计分析,出现概率最高的将其认定为背景像素。因为虚拟背景帧仅用于对CU进行分类,所以仅选取亮度分量并对其进行建模。

基于像素统计分析生成虚拟背景帧的算法流程图如图1所示,其描述如下:

图1 生成虚拟背景帧流程图

(1)选定原始视频的前M 帧进行虚拟背景帧建模;

(2)对前M 帧的每一帧中每一个位置的像素进行0~255 区间像素频率统计,如当前位置像素值为30,则其像素值N=30 出现频率加1;

(3)对统计结果进行分析,得到每个像素位置出现频率最高的像素值为虚拟背景帧该像素位置的像素值。

2.3 CU分类

为了研究潜在的编码复杂度优化策略,本文进行了若干实验以分析如何提前终止CU 分区,选择最佳PU模式。首先,要对当前编码CU进行分类,利用它们不同的特性以减少编码复杂度。CU可以被划分为四种类型:前景编码块(FCU)、纯背景编码块(PBCU)、背景编码块(BCU)和混合编码块(XCU)。 M(b)表示像素的类别。

其中,B 表示当前像素是背景像素,F 表示当前像素是前景像素。Ci,j表示在当前编码CU中位置(i,j)的像素值,Bi,j表示在虚拟背景帧中当前编码CU 的同位块中位置(i,j)的像素值。若Ci,j和Bi,j的绝对差值小于阈值α,则判定当前像素点为背景像素点,否则为前景像素点。在实验中,阈值α 设置为5。根据当前编码CU 中背景像素点的占比,可以对CU分类,公式如下:

其中,Nb表示当前编码CU 中背景像素点的数量,Nc表示当前编码CU像素点的总数。在实验中,设置δ 为0.9,ε 设置为0.5。当前编码CU 中,背景像素点占比达到100%时,判定其为PBCU;若背景像素点占比高达δ时,判定其为BCU;若背景像素点占比小于ε 时,判定其为FCU;否则为XCU。

2.4 提前终止CU划分方案

在编码2N×2N 区域之前,HEVC编码器通常需要确定该CU 是否应该被编码为整个2N×2N 大小的CU或者继续划分以4 个单独部分的形式递归编码。编码器通常通过递归计算每种分区的RD成本来决定是否要划分,这个过程非常耗时。为了解决这个问题,一些CU分区终止方法被提出以提前终止进一步的分区。然而,对于监视和会议视频,通过利用长时间静态背景,可以更大程度地加速CU分区终止。之前已经对编码CU进行了分类,接下来对编码中PBCU的划分进行统计分析。

由表1 可以看出,在监控和会议视频中,当深度为0、1 和2 时,PBCU 超过98%的比例不会再被进一步划分。因此,提出当前编码CU是PBCU时,若当前深度为0、1 或2,则当前深度为最优深度,不再继续向下划分。对于其他类型的CU划分统计如表2所示。

表1 PBCU进一步划分的概率

表2 不同类别CU进一步划分的概率

如表2所示,在监控视频中,深度为0、1和2的BCU分别只有11.88%、6.90%和2.21%的比例将进一步分区,而会议视频的比例分别为4.75%、4.96%和2.41% 。虽然这些比例远小于FCU 和XCU 的比例,但占比仍然比较大,因此对于BCU 来说不能直接终止其向下划分。在帧间预测过程中,当CU纹理较简单且运动较平缓时,CU最佳分割为64×64或32×32大小的可能性较高,反之选择小尺寸CU分割的可能性比较大[11]。本文可以用均值绝对差(MAD)度量CU的纹理复杂度[12],即:

式(3)中,M、N 分别为CU的宽和高;p(i,j)表示位于(i,j)的像素值;pave为CU块的平均像素值。当MAD <θ 时,CU为纹理简单,在其他情况下,CU为纹理复杂。在实验中,把θ 设置为16 ≫Depth,Depth为当前CU的深度。

为了降低CU 划分的复杂度且保证编码质量,本文根据CU 的分类,结合其纹理复杂度设计了加速方案。对于BCU来说,超过90%的像素点都是背景像素点,因此其运动比较平缓。本文通过实验进行分析,由表3可以看出,对于纹理简单的BCU,在深度为1和2时,超过97%的CU 是不继续向下划分的。从表4 中可以看出,XCU 在深度小于等于2 时,且纹理复杂度较大时,超过95%的比例会向下划分,因此对于此类CU 可以直接进行下一深度的划分,在当前深度不需要做PU 模式选择。CU划分提前终止策略总结如下:若当前编码CU为PBCU时,不再继续向下分割,当前深度为最优深度;若当前编码CU 为BCU 且深度为1 和2 时,判断其纹理复杂度,若为简单纹理的BCU则不再向下划分,当前深度为最优深度;若当前编码CU为XCU且深度小于等于2,且纹理复杂度较大时,直接跳过当前深度的PU 模式选择进行下一深度的CU划分。

表3 纹理简单的BCU向下划分的比例

表4 纹理复杂的XCU向下划分的比例

2.5 帧间PU模式预测

在帧间预测中,每个CU对应的PU模式有11种,若能减少当前CU 对应PU 模式遍历的范围,就能够加速帧间模式的选择过程。为此,本文对不同类型的CU的PU模式选择进行了实验分析。

在实验统计中,把PBCU归类到BCU中。表5显示了BCU中PU模式的分布,可以看出,对于Size >16×16的BCU来说,PU模式为2N×N、N×2N、N×N 和AMP只占有很小的比例,总体没有超过5%。但是对于Size ≤16×16 的BCU,2N×2N 的PU模式占比没有达到95%,所以对于Size ≤16×16的BCU不能跳过2N×N、N×2N、N×N 和AMP 的模式选择。基于以上分析,在PU 模式预测中,对于Size >16×16 的BCU则只选择2N×2N 的PU 模式,若Size ≤16×16 则正常遍历所有的PU 预测模式。

表5 PU模式选择在BCU中的分布

由表6 可以看出,XCU 在PU 模式选择中,AMP 模式的占比非常低,因此对于XCU 在模式选择中可以跳过AMP模式选择。加速PU模式预测的策略为:若当前编码CU的尺寸是Size >16×16的BCU(其中包含PBCU),只遍历2N×2N 的PU 模式;对于XCU 在进行PU 模式选择时,不遍历AMP模式。

表6 PU模式选择在FCU、XCU中的分布

2.6 算法整体流程

本文基于背景虚拟帧对编码CU 进行分类,从CU深度划分和PU 模式选择两方面来加速帧间的预测过程。整体的流程如下:

(1)由像素统计分析生成虚拟背景帧。

(2)对当前编码CU 进行分类。当前编码CU 和虚拟背景帧中的同位CU进行比较,根据不同程度的相似性将其划分为PBCU、BCU、XCU和FCU。

(3)若当前编码CU为PBCU,则不再进行下一次划分,当前CU 深度为最佳划分深度;若当前编码CU 为BCU 且深度为1、2 时,对其进行纹理复杂度判断,如果纹理简单则不再向下划分,当前深度为最优深度;若当前编码CU为XCU且深度小于等于2且纹理复杂时,直接跳过当前深度的模式选择,进行下一深度的CU划分。

(4)对于PU 模式选择,若当前编码CU 的尺寸是Size >16×16 的BCU(其中包含PBCU),只遍历2N×2N的PU 模式;对于XCU 在进行PU 模式选择时,不遍历AMP模式。

整体算法过程如图2所示。

3 实验结果

测试所采用的实验环境是Windows Server 2016,处理器为Intel®Xeon®Silver 4110 CPU@2.10 GHz、2.10 GHz(双处理器,16 核CPUs),RAM 为32 GB。本文所使用的视频序列均是HEVC的通用测试序列,其中包含4 个监控测试序列和6 个会议测试序列。其中,监控测试序列有Traffic、PeopleOnStreet、Cactus 和BasketballDrill,会议视频序列有Vidyo1、Vidyo3、Vidyo4、Four-People、KristrenAndSara和Johhny。本文算法在HM16.9上进行实现,采用低延时(Low Delay,LD)接入方式,以通用测试条件[13]对10 个视频序列各编码100 帧进行测试。为了测试编码率失真性能,使用BDBR[14]、PSNR和时间变化对算法做性能评估。

利用式(4)计算时间的编码来评估算法的加速性能,THM16.9和TProposed分别表示HM16.9 和采用本文算法对测试序列编码所需的时间。

图2 整体流程图

表7 为本文提出的基于虚拟背景帧的帧间预测加速算法在LD接入方式下的性能测试结果。对比HM16.9算法,监控视频序列的平均输出比特率增加了2.14%,平均编码时间减少了33.24%,而视频的平均PSNR只降低了0.08 dB。对于会议视频序列来说,平均输出比特率增加了1.84%,平均编码时间减少了33.18%,而视频的平均PSNR只降低了0.06 dB。本文所提出的算法,对于监控和会议视频序列都有不错的效果。

表7 本文算法和HM16.9性能对比

为进一步验证本文算法的有效性,与文献[15]中所提出的算法进行了对比,分别选取了监控和会议视频测试序列的对比结果,如表8所示。

通过实验对比结果可以看出,本文算法和文献[15]算法相对HM,平均编码时间分别减少了33.31%和31.78%,采用本文算法平均BDBR 增加了1.93%,略高于文献[15]的1.56%,而编码后视频质量没有太大的差距,平均PSNR 分别下降了0.07 dB 和0.05 dB。经过对比验证,本文算法能够准确对CU块进行分类,通过加速CU 划分和PU 模式选择,编码监控和会议视频时,能够在保证编码质量的前提下,降低编码复杂度,减少编码时间。

表8 本文算法与文献[15]在LD配置下性能比较

4 总结

为了有效降低监控和会议视频在HM 中的编码时间,本文提出了一种基于虚拟背景帧的帧间快速编码算法。首先,对原始视频帧进行像素统计分析,生成虚拟背景帧,根据虚拟背景帧对当前编码CU进行分类;对于不同类型的CU结合其纹理特性,提前终止CU划分,加速CU 划分过程;对不同类型的CU,根据PU 模式选择策略,减少PU 模式的遍历过程,加速帧间预测中PU 模式选择过程。实验仿真结果表明,本文提出的改进算法在视频质量基本没有损失,输出比特率增加较小的前提下,大幅度降低了平均编码时间。

猜你喜欢

像素点复杂度纹理
基于局部相似性的特征匹配筛选算法
基于BM3D的复杂纹理区域图像去噪
一种低复杂度的惯性/GNSS矢量深组合方法
使用纹理叠加添加艺术画特效
基于5×5邻域像素点相关性的划痕修复算法
基于canvas的前端数据加密
TEXTURE ON TEXTURE质地上的纹理
求图上广探树的时间复杂度
基于逐像素点深度卷积网络分割模型的上皮和间质组织分割
消除凹凸纹理有妙招!