一种基于感兴趣区域的监控类视频编码码率控制算法

2023-10-26 06:18强,聂骏,赵
关键词:码率复杂度比特

李 强,聂 骏,赵 宇

(1.重庆邮电大学 通信与信息工程学院,重庆 400065;2.信号与信息处理重庆市重点实验室,重庆 400065)

0 引 言

数字视频监控系统已广泛应用于公共交通、金融安全、公安和医疗等领域。监控视频的高清化导致数据传输和存储代价越来越高。目前基于H.264、高效率视频编码(high efficiency video coding,HEVC)和音视频编码标准(audio video coding standard,AVS)的编码器均能实现视频数据的有效压缩,但这些视频编码标准没有充分考虑实际应用中编码对象的特点。监控视频存在大片静止的背景区域,也包含重要运动信息的前景区域,在编码时,如果对前景区域分配较多编码资源进行非对称性保护,可提高该区域的编码质量。因此,针对特定应用场景下的视频内容,编码器的性能还有较大的提升空间。

视频码率控制(rate control,RC)依据输出缓存区的状态,动态调整量化参数(quantization parameter,QP),使实际输出码率尽可能逼近目标码率,并确保编码失真最小。因此,每一代视频编码标准都采用了对应的码率控制技术。HEVC有固定和动态比例调整比特分配两种码率控制方案[1-2]。采用RC的视频监控系统可实现与目标码率基本一致的编码速率,并能有效提升视频的编码质量。因此,RC是视频监控系统不可或缺的一项关键技术,也是当前视频编码应用研究的热点。文献[3]在码率控制中考虑了监控场景中的视频内容,提出了一种基于块层次的前景区域提取方法,改善了监控视频的编码性能;文献[4]通过研究HEVC低时延结构中编码帧与基准帧的相关性,提出了一种适合监控视频的图像级码率控制算法;文献[5]对视频编码帧中的显著区域进行高效编码,对低带宽资源地区具有较好的适用性;文献[6]针对交通监控类视频的背景长时间处于较稳定状态的特点,提出了一种基于库的交通监控视频编码方案,通过去除监控视频中长时间自身冗余,提升了编码效率。在实际应用中,监控类视频的焦点往往集中在动态对象的前景区域上[7],而这些区域往往是人们感兴趣区域(region of interest,ROI)。当前很多算法通过增加编码比特提升ROI的主观质量,但也导致了非ROI编码质量显著下降。如何对视频中ROI进行准确检测、识别和特征分析是当前难点所在。目前,很多码率控制算法未考虑帧层的目标比特对最大编码单元(largest coding unit,LCU)层比特分配的影响,编码率失真(rate distortion,RD)性能还有待提高。

本文以监控类视频中的纹理复杂区域和运动区域为感兴趣区域,对HEVC的帧层和LCU层码率控制算法进行优化。在帧层比特分配时,考虑了当前信源的总体信息测度;对LCU层进行比特分配时,根据LCU的空时域特性,提出了一种新的LCU层比特分配权重和模型参数更新方法。实验结果表明,本文算法能实现稳定的码率控制精度,进一步提升编码率失真性能。

1 帧层比特分配模型

为了定义不同消息所含的信息量,香农利用符号消息发生的概率定义了信息熵。图像信息熵EI能表征图像灰度分布聚集特征所含的信息量,也可表示图像的空间复杂性,其计算公式为

(1)

(1)式中:p(χ)是灰度值为χ的像素在图像中所占比例;N为灰度级数。

对于监控类视频,其背景区域往往是长时间不变的[8],视频的变化主要由前景区域的运动物体所产生。如果监控类视频的前景区域发生变化,则每个编码帧有不同的比特分配需求。编码帧的信息熵越大,分配的比特应越多。本文对原线性分配模型进行改进,在码率控制算法中考虑了视频编码帧的信息熵。为了保证原始权重和信息熵处于同一数量级,本文定义了一种待编码帧的参数调整因子Af,其表达式为

(2)

(3)

(4)

(3)式中,ωoriginali表示当前编码帧在R-λ模型码率控制算法中的权重;(4)式中,右边第1项求和为当前GOP中所有未编码帧的比特分配权重之和。

(5)

(5)式中:TGOP为GOP层的目标比特数;CGOP是GOP已消耗的比特数。

2 LCU层比特分配模型

2.1 感兴趣因子的度量

本文以视频帧纹理复杂区域和运动区域为感兴趣区域,通过检测待编码帧的LCU纹理复杂度和运动特征,计算出每个LCU在待编码帧中的空间复杂度纹理因子、时间复杂度运动因子和特征量化加权系数,用于指导LCU层的目标比特分配。

监控视频中纹理复杂区域往往含有重要信息,如交通监控视频中的车牌号等,因此在编码过程中应确保这些区域的编码质量。若能有效检测出编码帧的纹理复杂度,并以此作为调整QP值的依据,对各区域的位分配进行优化,可改善监控类视频的编码质量。

相对于Sobel算子,Scharr算子采取增大邻近像素权重的方式,能有效提取图像中较弱边缘,因此纹理检测的准确性更高。本文采用Scharr算子通过(6)式计算出每个像素亮度在水平方向和垂直方向的梯度值Sx和Sy后,利用(7)式得到每一个像素空间信息的估计值。

(6)

(7)

一帧中每个LCU像素的平均空间信息估计值S′可以表示为

(8)

(9)

(10)

η1值越大,说明该LCU的纹理越复杂。为了不显著增加HEVC编码器额外的计算量,本文采用实用且计算简单的帧差法,检测监控视频中的运动区域。当前编码帧的LCU与前一重构帧相同位置LCU的像素亮度值相减,以像素亮度差值的绝对和作为LCU在视频序列中的时间信息估计值T′,表示为

(11)

(12)

(13)

η2值越大,说明LCU运动越剧烈,需分配的比特就越多。对一帧中所有LCU的空间信息估计值和时间信息估计值进行特征量化,以线性函数归一化后的系数作为η1和η2的占比权重,得到LCU的特征量化加权系数,表示为

(14)

(15)

(16)

2.2 基于时空域的新型复杂度的计算

根据编码帧的纹理复杂度、运动特征和HEVC编码特征,对LCU层的纹理因子和运动因子进行联合加权,得到一种新型复杂度NC,其计算式为

NC=a×η1+(1-a)×η2

(17)

NC的计算公式考虑了LCU时域运动特征和空域纹理复杂度。以NC作为LCU的比特分配权重,在指导LCU层目标比特分配时,对纹理复杂度较高,运动较剧烈以及HEVC预测精度较低的区域分配较多的目标比特,这样可提高目标比特分配的合理性。

2.3 LCU层比特分配

采用本文算法对HEVC的B帧和P帧中LCU层的目标比特进行分配。先根据当前编码帧目标剩余比特数和LCU的复杂度NC,采用(18)式对LCU层进行初始目标比特分配,得到TLCU值;然后依据缓冲区状态,采用(19)式对TLCU进行动态调整,得到的TCurrLCU值即为LCU最终的目标比特数。

(18)

TCurrLCU=TLCU-(totalWeight-Bleft)/

realInfluenceLCU+0.5

(19)

(18)式中:CPic表示已消耗的比特数;AllLCUs是LCU的总数;NotCodedLCUs是未编码LCU的个数;NCi表示第i个LCU的比特分配权重;Bheader为帧头信息的估计比特数;ωCurrLCU是原平台LCU的自适应比特分配权重;NCCurrLCU表示采用本文算法为每个LCU计算出的比特分配权重;c为加权系数,该系数是通过对多个视频序列编码,选出编码效果最好的一个经验值,在本文算法中,c取值0.4。(19)式中:totalWeight是未编码LCU所需比特数;Bleft为当前编码帧剩余的比特数;realInfluenceLCU为平滑窗口大小。

2.4 模型参数更新

由于每一编码帧的纹理复杂度、运动区域及参考帧结构都是不同的,因此每一编码帧的R-λ模型参数也不相同。针对这种情况,文献[1-2]考虑到相同层级编码帧之间的相关性,利用已编码帧的参数,对待编码帧的R-λ模型参数进行估算和更新。由于该方法只考虑了编码帧的拉格朗日乘子和编码比特,因而参数更新的收敛速度和准确性不佳,码率控制性能有待提高[9]。本文考虑当前LCU的平均空间信息和平均时间信息,通过(20)—(21)式,得到一种空间和时间关系的参数调整因子ε和权重调整系数υ。

(20)

(21)

本文算法把实际编码比特Rreal、拉格朗日乘子λreal、LCU的平均空间信息S′和平均时间信息T′、参数调整因子ε和权重调整系数υ一起用于模型参数的更新。将这些参考信息代入(22)—(23)式所示的R-λ模型更新参数,得到αnew和βnew参数。

αnew=υ×λreal×Rrealλreal×Rreal/T′+1+

(1-υ)×λreal×Rrealλreal×Rreal/(S′×ε)+1

(22)

(23)

引入ε使空间信息和时间信息能保持在同一数量级内,而采用υ能确保当前LCU根据空时域特性进行自适应参数更新,这样得到αnew和βnew值将更准确。这种利用编码单元信息的相关性对参数进行实时更新方法,将提升监控视频编码的RD性能,并确保码率控制的精度。

3 码率控制优化算法流程

本文算法流程如图1所示,具体步骤如下。

图1 本文算法流程图Fig.1 Flow chart of the proposed algorithm

步骤1根据(1)式计算出GOP所有编码帧的信息熵EI和帧层固定权重ωi,利用(2)式求出两者之间的参数调整因子Af;

步骤4通过(10)式、(13)式,计算出每个LCU在该帧中的空间复杂度纹理因子η1和时间复杂度运动因子η2;

步骤5对编码帧所有LCU的空间信息估计值和时间信息估计值进行特征量化,采用(14)—(16)式计算出η1的特征量化加权系数a;

步骤6根据当前LCU的η1和η2,以及步骤5计算出的a,采用(17)式计算出该LCU的复杂度NC,通过(18)式对LCU层进行初始目标比特分配,根据缓冲区状态,利用(19)式对当前LCU初始分配的目标比特TCTU进行动态调整,得到最终目标比特数TCurrLCU;

步骤7当前LCU编码完后,通过(20)—(23)式对R-λ模型参数进行更新;

步骤8如果当前LCU是当前编码帧的最后一个LCU,执行步骤9;否则,返回步骤6,对下一个LCU进行编码;

步骤9如果编码帧是当前GOP的最后一帧,当前GOP编码已完成;否则,返回步骤2对下一帧进行编码。

4 性能测试及分析

4.1 测试序列和编码配置

本文算法在HEVC参考软件HM16.7上进行了实验,测试序列来自北大监控类视频测试集PKU-SVD-A-Baseline。这些测试序列大多来自繁忙的交通路段,都是由固定摄像机捕获的高清或标清的监控视频,且在一段时间内都有相对固定的背景。北大监控类视频的参数如表1所示。

表1 北大监控类视频测试序列参数Tab.1 Peking University surveillance video test sequence parameters

对比算法来自文献[1]和文献[2],分别简称RC[1]和RC[2]。这两个算法是HM16.7测试平台自带的码率控制算法。本文所提算法和对比算法的目标码率是通过HM16.7平台对表1测试序列进行编码得到的。对未启用码率控制的测试平台,分别采用RC[1]、RC[2]和本文算法的测试平台,在不同QP值(22、27、32、37)配置下对测试序列进行编码。本文所有测试遵循JCT-VC标准,编码器配置分别为低延时B帧 (low delay b-frame,LDB)和低延时P帧 (low delay P-frame,LDP)。

本文运行HM16.7测试平台软件所用电脑的主要配置为:英特尔酷睿i7/3 GHz CPU、16 GB内存和64位Win10系统。

4.2 率失真性能

本文采用增量比特率(bjøntegaard delta bit rate,BDBR)评估编码率失真性能,通过峰值信噪比(peak signal to noise ratio,PSNR)和结构相似性(structural similarity index measure,SSIM)评估编码质量。以HM16.7未开启码率控制为参考方案,以开启码率控制为测试方案,测试码率控制算法分别在LDP和LDB配置下的PSNR-BDBR和SSIM-BDBR。

表2—表3分别为RC[1]、RC[2]与本文算法监控类视频Y分量的PSNR-BDBR与BD-PSNR对比。由表2—表3的测试数据可知,本文算法对每个测试序列编码所获得的PSNR-RD性能均优于对比算法。通过计算所有测试序列的平均PSNR-BDBR和BD-PSNR,在LDP和LDB配置下,与RC[1]相比,本文算法分别节省了5.9%和7.5%的码率,PSNR分别提升了0.14 dB和0.19 dB;与RC[2]相比,本文算法分别节省了4.8%和6.0%的码率,PSNR分别提升0.12 dB和0.16 dB。

表2 监控类视频Y分量的PSNR-BDBR对比Tab.2 PSNR-BDBR comparison of Y component of surveillance video %

表3 监控类视频Y分量的BD-PSNR对比Tab.3 Comparison of BD-PSNR(dB) of Y-component of surveillance video dB

表4—表5分别为RC[1]、RC[2]与本文算法的监控类视频Y分量的SSIM-BDBR与BD-SSIM对比。由表4—表5的测试数据可知,本文算法对每个监控测试序列编码所获得的SSIM-RD性能均优于对比算法。在LDP和LDB配置下,本文算法基于SSIM的率失真性能增益为14.2%和12.2%,平均BD-SSIM为0.004 83和0.003 71。

表4 监控类视频Y分量的SSIM-BDBR对比Tab.4 SSIM-BDBR comparison of Y component of surveillance video %

表5 监控类视频Y分量BD-SSIM对比Tab.5 Comparison of BD-SSIM for Y-component of surveillance video dB

通过PSNR-BDBR和SSIM-BDBR测试数据的对比,采用本文的HEVC编码器,相对于HM16.7原平台的RC[1]和RC[2]算法,监控类视频编码的率失真性能有较大提升。

图2—图3是分别是序列Crossroad的SSIM-RD和PSNR-RD曲线。由图2—图3可知,本文算法通过对帧层和LCU层的比特数进行合理调整和准确分配,得到的率失真性能均优于对比算法,且在不同比特率下都具有较好的SSIM-RD性能。

图2 Crossroad序列的SSIM-RD曲线图Fig.2 SSIM-RD plot of Crossroad sequence

图3 Crossroad序列的PSNR-RD曲线图Fig.3 PSNR-RD plot of Crossroad sequence

图4—图5是在LDP配置下分别采用本文算法和RC[2]算法,以133.730 8 kbit/s为目标码率,对Bank序列进行编码,得到的每帧Bits cost和Y-SSIM的对比图。本文算法实际的输出码率、Y-SSIM分别为133.730 4 kbit/s、0.933 74;RC[2]实际的输出码率、Y-SSIM分别为133.740 0 kbit/s、0.930 61。采用本文算法在编码帧消耗较少比特的情况下,能获得较高的Y-SSIM。Bank序列具有大片复杂的背景区域,也包含较多的前景区域,如运动不剧烈的行人,剧烈运动行驶中的汽车。由于本文算法能准确检测出编码帧中的纹理复杂区域和运动区域,以此构建出的比特分配权重,能提高LCU目标比特分配的准确性,因此有效提升了码率控制的性能。

图4 LDP配置下Bank 序列的Y-SSIM对比图Fig.4 Y-SSIM comparison chart of Bank sequence under LDP configuration

图5 LDP配置下Bank 序列的Bits cost对比图Fig.5 Bits cost comparison chart of Bank sequence under LDP configuration

4.3 码率控制精度和算法计算复杂度

本文以码率相对误差(Rerr)来评估码率控制精度,其计算式为

(24)

(24)式中,Ract和Rtar为编码器实际输出码率和目标码率。码率控制精度测试结果如表6所示。与RC[2]相比,本文算法在LDP和LDB配置下比特率相对误差平均上升了0.009 4%和0.006 4%,码率控制精度略有降低,主要原因是本文算法根据运动特性和纹理特性对LCU层的比特数进行分配,NC越大的LCU分配的比特数越多,这使得码率控制精度略有降低,但与RC[1]与RC[2]码率控制精度很接近,说明本文算法能确保监控类视频的码率控制精度。

表6 码率控制精度RErr的比较Tab.6 Comparison of rate control accuracy RErr %

本文以编码时间增加百分比ΔT来评估码率控制算法的计算复杂度,其计算式为

(25)

(25)式中,Tpro和Torg分别是HM16.7采用码率控制算法的编码时间和没有采用码率控制基准方案的编码时间。表7为ΔT测试数据。在LDP和LDB配置下,本文算法的ΔT分别为-0.77%和0.53%。与RC[2]相比,本文算法复杂度略有增加。ΔT为负值,表示与未开启码率控制的HM16.7相比,采用码率控制算法的编码复杂度有所降低。HEVC的GOP共有4帧,第1帧和第3帧处于高时间层,第2帧和第4帧处于低时间层。在低延迟结构中,RC算法为了确保低时间层图像的编码质量,分配了较多的目标比特,而高时间层图像分配的比特较少,因此增大了高时间层图像的QP值。QP值增大会降低编码器的编码时间[10]。

表7 RC[2]与本文算法ΔT的比较Tab.7 ΔT comparison between RC [2] and the algorithm in this paper %

5 结束语

为了提高监控类视频的编码质量,本文算法利用编码帧的信息熵,设计了一种新的帧层比特权重分配方法,用于帧层目标比特分配;以LCU纹理因子、运动因子和特征量化加权系数构建了一种新的LCU层比特分配权重,以指导LCU层的目标比特分配和R-λ模型参数更新。实验结果表明,本文算法能维持较高的码率控制精度,显著提升监控类视频的编码性能。若能提高ROI检测的准确性,采用先进的人工智能识别技术训练出更好的率失真性能模型,为各编码层分配最佳比特数,将能进一步提高视频的编码质量。

猜你喜欢
码率复杂度比特
一种低复杂度的惯性/GNSS矢量深组合方法
基于状态机的视频码率自适应算法
比特币还能投资吗
比特币分裂
求图上广探树的时间复杂度
比特币一年涨135%重回5530元
某雷达导51 头中心控制软件圈复杂度分析与改进
基于场景突变的码率控制算法
X264多线程下码率控制算法的优化
出口技术复杂度研究回顾与评述