基于CNN的[λ]域帧内码控最佳码率分配算法
2023-09-25林湧杨郑龙罗亦茜刘欣昱
林湧 杨郑龙 罗亦茜 刘欣昱
摘 要: 在[λ]域帧内码控中,提出一种基于卷积神经网络(Convolutional Neural Network,CNN)的帧内码控最佳码率分配算法。首先利用双曲线函数拟合编码树单元(Coding Tree Unit,CTU)的率失真(Rate Distortion, RD)特性。设计双分支卷积神经网络(Dual-Branch Convolutional Neural Network,DBCNN)预测率失真关键参数。然后根据帧级率失真优化(Rate Distortion Optimization,RDO),建立帧级目标码率与CTU码率分配等式关系,推导帧级拉格朗日参数[λ]。最后反演出最佳CTU码率分配。实验表明,该算法能够显著提高帧内码控编码性能,并具有较高码控精度。
关键词: H.265/HEVC; 帧内编码; 卷积神经网络; [λ]域码率控制; 率失真特性
中图分类号:TN919.81 文献标识码:A 文章编号:1006-8228(2023)09-87-05
CNN based optimal rate allocation algorithm for λ-domain intra coding rate control
Lin Yong, Yang Zhenglong, Luo Yixi, Liu Xinyu
(Dept. of Urban Rail Transit, Shanghai University of Engineering Science, Shanghai 201620, China)
Abstract: In λ-domain intra coding rate control, an optimal intra coding rate allocation algorithm based on convolutional neural network (CNN) is proposed. Firstly, the rate-distortion (RD) characteristics of the coding tree unit (CTU) are fitted using the hyperbolic function. Dual-branch convolutional neural network (DBCNN) is designed to predict the key parameters of RD. Then, according to the frame-level rate-distortion optimization (RDO), the equation relationship between the frame-level target rate and the rate allocation of the CTU is established, and the frame-level Lagrange parameter λ is derived. Finally, through program optimization, the optimal rate allocation of the CTU is performed to achieve the best balance between coding quality and code rate control. Experimental results show that the algorithm can significantly improve the coding performance of intra coding rate control, and has high rate control accuracy.
Key words: H.265/HEVC; intra coding; convolutional neural network (CNN); λ-domain rate control; rate-distortion (RD)
0 引言
HEVC(High Efficiency Video Coding)[1]是一個高效的视频编解码标准。相比于上一代视频编码标准,其压缩效率提高一倍。[λ]域帧内码率控制[2]技术是HEVC标准的重要组成部分,由于帧内码控编码质量将影响后续的编码质量,提高帧内码率控制就显得尤为重要。因为帧内码控编码可参考的编码信息较少,使得其初始码率分配无法满足编码树单元(Coding Tree Unit, CTU)的编码特性需求,造成码率分配不合理而降低帧内码控编码性能。
现有许多优秀的码率控制算法,如针对帧内码率控制研究中,文献[3]提出使用绝对变换差值之和作为码率分配的复杂度指标。同样地,文献[4]提出一种基于梯度的R-[λ]模型[5]。然而纹理复杂度往往不能表征编码特性,分配的码率无法适应编码的率失真特性,这就限制了帧内码控编码的性能。一些学者从视觉感知方向出发,提出以主观评价为基础的码控算法,以及对视觉感兴趣区域重点编码[6]的码控算法。文献[7]从感知方向进行研究,根据结构相似度(Structural Similarity, SSIM)指标建立率失真关系,从而获得每个CTU的最佳感知码率分配。文献[8]通过分裂归一化策略,建立基于SSIM的率失真模型以表征局部视觉质量与编码码率之间的关系。然而提高帧内码控的主观编码质量往往不能提升当前帧整体的客观编码质量,这就不利于后续编码帧的参考,因此需要寻找CTU的编码特性,分配合理的码率来提升整体的帧内码控编码质量。近年来,随着深度学习取得了巨大成功[9-10]。CNN可以有效提取图像特征来获得先验知识,其可为帧内码控编码提供准确的初始信息。Li等人[11]提出一种基于CNN的R-[λ]帧内码率控制,通过CNN预测每个CTU的R-[λ]曲线参数。然而,仅考虑码率与拉格朗日参数[λ]的关系不能实现最佳编码,码率分配也是影响帧内码控编码性能的另一个重要因素。同样地,Wei等人[12]建立了CTU级[λ]和帧级[λ]的等式关系,但是如何根据CTU的编码特性,有效地分配码率也是提高码控编码的关键。
综上所述,本文的研究重点是帧内码率的合理分配,并提出基于DBCNN的[λ]域帧内最佳码率分配方案。首先,探索不同CTU之间的RD特性,通过DBCNN网络有效提取CTU编码特征,先知CTU的率失真关键参数。然后通过RDO,获取帧级目标码率与CTU码率分配的等式关系,进而推导出每个CTU的最佳码率分配。
1 CTU的率失真关系
本文关闭码率控制,设置量化参数QP=17、22、27、32、37、42,对视频序列进行帧内编码,记录每个CTU在不同QP下的码率与失真值。其如图1(a)、图1(b)、图1(c)所示。
从图1(a)、图1(b)中可以看出,RD曲线符合双曲线关系,即:
[DCTUi=CiRCTUi-Ki] ⑴
其中,[RCTU(i)]为第[i]个CTU的码率,[DCTU(i)]为第[i]个CTU的失真,[Ci]和[Ki]为RD关键参数。从图1中可以看出,不同帧的CTU其RD曲线不相同。因此,先知CTU的RD特性将有助于码率的合理分配。
2 基于DBCNN的帧内码率分配
2.1 DBCNN网络设计
设计DBCNN以预测CTU的RD特性参数,其结合了残差网络[13]的网络结构如图2所示。DBCNN的输入为:视频编解码过程中帧内编码时该帧的64*64大小的CTU。DBCNN网络结构主要由三部分组成:骨干网络、分支C和分支K。分支C与分支K分别用于预测CTU的RD特性关键参数[C]与[K]。骨干网络、分支C与分支K的结构与参数如图3所示。最终将预测的关键参数[C]和[K]与真实标签做欧式距离损失对网络进行监督:
[LCζC=1Nn=1N||FCXn|ζC-YCn||2] ⑵
[LKζK=1Nn=1N||FKXn|ζK-YKn||2] ⑶
其中,[N]为这一批数据中的CTU个数,[Xn]为CTU的原始输入, [FC(∙)]和[FK(∙)]为分支C和分支K的网络执行。 [ζC]和[ζK]为DBCNN中分支C和分支K部分的网络参数,[YCn]和[YKn]为参数[C]和参数[K]的真实标签。由于参数[C]的取值范围较大,参数[K]的取值范围较小,若设计直连网络结构,对参数[C]的训练会对参数[K]的训练产生一定影响,因此本文采用双分支网络结构,使得对参数[C]和参数[K]的预测都能保持在较高的精度。
2.2 帧内最佳码率分配
建立帧级的率失真关系模型:
[Ωfopt=argminΩfDf s.t. Rf=Rft] ⑷
其中,[Ωfopt]为当前帧的编码参数集合,包括模式,量化参数等,[Df]、[Rf]、[Rft]分别是当前帧的失真、码率以及目标码率。将帧级的率失真关系转化为CTU级率失真关系:
[min Df=i=1NDCTUi s.t. Rf=i=1NRCTU(i)=Rft] ⑸
其中,[N]为该帧图像当中的CTU个数,[DCTU(i)]、[RCTU(i)]分别是第[i]个CTU的失真和码率。使用拉格朗日乘子法将式⑸转化为无约束问题:
[mini=1NDCTU(i)+λ(i=1NRCTU(i)-Rft)] ⑹
其中,[λ]为帧级拉格朗日因子。对式⑹进行求导优化,可得:
[∂i=1NDCTU(i)∂RCTU(1)+λ∂(i=1NRCTU(i)-Rft)∂RCTU(1)=0∂i=1NDCTU(i)∂RCTU(2)+λ∂(i=1NRCTU(i)-Rft)∂RCTU(2)=0……∂i=1NDCTU(i)∂RCTU(N)+λ∂(i=1NRCTU(i)-Rft)∂RCTU(N)=0] ⑺
将式⑴带入到式⑺可得:
[C1K1RCTU(1)-K1-1=λC2K2RCTU(2)-K2-1=λ……CNKNRCTU(N)-KN-1=λ] ⑻
其中,[C1, C2……CN]與[K1, K2……KN]为CTU的RD关键参数,其可由DBCNN网络预测得到。令
[C1K1, C2K2,……, CNKN]=[α1, α2, ……, αN];
[-K1-1, -K2-1……, KN-1]=[β1, β1, ……, βN]对式⑻整理可得:
[RCTU(1)=(λα1)-β1RCTU(2)=(λα2)-β2……RCTU(N)=(λαN)-βN] ⑼
根据帧级的码率约束关系,CTU的码率之和应等于当前帧的目标码率:
[λα1-β1+λα2-β2+λα3-β3+…+(λαN)-βN=Rft] ⑽
从式⑽可解得当前帧的拉格朗日参数[λ]。将[λ]带回式⑼,即可推导出每个CTU的最优码率分配。
3 实验分析
本实验使用的编码器平台为HM16.9。DBCNN网络训练与测试的环境为Caffe,CPU配置为Intel(R) Core(TM) i9-11900 2.50GHz,GPU配置为GeForce RTX2080。从视频编解码的Class A、B、C、D、E中提取近6000帧图像以获取数据集,为了降低相邻帧之间的相关性,在从视频当中提取帧时,每间隔10帧进行提取。为了获得数据集中CTU以及其对应的RD特性参数标签,使用HM16.9进行帧内编码时,量化参数QP选择17,22,27,32以及37,因此每个CTU可以获得5个RD点,然后用双曲函数拟合RD曲线,并获取曲线的关键参数[C]和[K],制作成标签。参数[C]的取值范围固定在[0,200]之间,参数[K]的取值范围固定在[-2,0]之间。数据集中训练集、验证集、测试集大小分别为9000张,1000张,1000张,1000张。
对网络训练过程中,使用Adam算法作为DBCNN的优化算法,其中[β1]=0.9,[β2]=0.99,[ε]=[10-8]。通过900000轮迭代,学习率从0.001逐渐降至0.0001。参数[C]与[K]在900000轮迭代后波动趋于稳定,参数[C]的loss降至0.001,参数[K]的loss降至0.0001。两种参数的loss变化曲线如图3所示。
首先关闭码率控制,设置量化参数QP分别为22、27、32、37,对第一帧进行帧内编码获取相应的目标码率后,以该目标码率进行码率控制。本文使用Li等人[11]、Wei等人[12]提出的算法以及HM16.9中的码率控制算法作为比较算法,采用通测条件[14]对A类、B类、C类、D类和E类序列进行测试。码率控制精度的定义如下:
[A=Ractual-RtargetRtarget×100%] ⑾
其中,[Ractual]为实际码率,[Rtarget]为目标码率。精度结果如表1所示。
从表1中可以看到,HM16.9,Li等人[11],Wei等人[12]及本文算法控制精度结果分别为2.89%、3.73%、6.12%、2.24%,因此,本文提出的算法码率精度优于其他算法。编码质量的对比如表2所示。
75 KristenAndSara 0.04 -0.56 0.07 -1.72 0.06 -2.15 平均 0.05 -0.72 0.07 -1.70 0.12 -1.86 总平均 0.12 -1.65 0.25 -2.94 0.41 -2.47 ]
从表2中的可以看到,本文所提出算法分别与HM16.9、Li等人[11]、Wei等人[12]的算法比较,BDRate平均减少1.65、2.94、2.47。BDPSNR平均增加0.12、0.25、0.41。本文提出的算法优于四种算法,并在每个类别中实现了BDPSNR增益和BDRate降低,这意味着本文算法在使用较少码率的同时保持甚至提高了视频的客观质量。本文算法之所以能够很好地执行,是因为它可以通过基于图像特征的合理网络结构提前精确地获得RD特性参数,预测的RD曲线符合编码特征。此外,通过帧级目标码率与CTU码率分配之间的关系为每个CTU分配更精确的码率,分配的码率更适应率失真特性,使码率与失真达到最佳的平衡状态。因此,帧内码率控制的编码性能显著提高。
在图4中,我们可以看到,图4(b)、图4(c)的地面纹理细节完全缺失,而本文算法部分地保持了它。本文算法保留了更多的高频信息,在重建图像中恢复了清晰的边缘和纹理,相比HM16.9和Li等人[11]的码率控制算法实现了更好的主观性能。
4 结束语
本文在HEVC中,提出了一种基于CNN的高效帧内码率控制算法。在该方法中,首先研究了CTU的率失真特性,DBCNN被设计用于预测率失真关键参数。之后,将一帧的失真分解为所有CTU的失真之和,通过推导一帧的RDO过程,建立帧级目标码率与CTU码率分配关系。通过反演方程,可以计算出每个CTU的最佳码率分配,用于帧内码率控制。最后,通过大量的实验,以验证本文算法的编码性能。本文算法相比其他码控算法有着较高的码控精度,使用了较少码率的同时,保持甚至提高了视频的客观质量,并且在主观质量方面也优于其他算法,显著提高了帧内编码码控质量。
参考文献(References):
[1] Sullivan G J, Ohm J R, Han W J, et al. Overview of the
high efficiency video coding(hevc) standard[J].IEEE Transactions on circuits and systems for video technology,2012,22(12):1649-1668.
[2] Li L, Li B, Li H, et al. [λ] -Domain Rate Control Algorithm
for High Efficiency Video Coding[J]. IEEE Transactions on Image Processing,2014,23(9):3841-3854.
[3] Wang X, Karczewicz M. Intra frame rate control based on
SATD, document JCTVC M0257[J]. Joint Collaborative Team on Video Coding,2013.
[4] Wang M, Ngan K N, Li H. An Efficient Frame-Content
Based Intra Frame Rate Control for High Efficiency Video Coding[J]. IEEE Signal Processing Letters,2015,22(7):896-900.
[5] Li B, Li H, Li L, et al. Rate Control By R-[ λ] model for
HEVC. 11th Meeting on JCTVC-K0103, JCTVC of ISO/IEC and ITU-T, Shanghai, China,2012.
[6] 李維,杨付正,任鹏.考虑视频内容的H.265/HEVC帧层码
率分配算法[J].通信学报,2017,36(9):76-81.
[7] Wei G, Kwong S, Yu Z, et al. SSIM-Based Game Theory
Approach for Rate-Distortion Optimized Intra Frame CTU-Level Bit Allocation[J]. IEEE Transactions on Multimedia,2016,18(6):988-999.
[8] Zhou M, Wei X, Wang S, et al. SSIM-Based Global
Optimization for CTU-level Rate Control in HEVC[J]. IEEE Transactions on Multimedia,2019,21(8):1921-1933.
[9] Krizhevsky A, Sutskever I, Hinton G. Imagenet classifica-
tion with deep convolutional neural networks[J]. Advances in neural information processing systems,2012,60(6):1097-1105.
[10] 胡越,羅东阳,花奎,等.关于深度学习的综述与讨论[J].智能
系统学报,2019,14(1).
[11] Ye L, Li B, Dong L, et al. A convolutional neural
network-based approach to rate control in HEVC intra coding[J].2017 IEEE Visual Communications and Image Processing (VCIP),2017:1-4.
[12] Wei L, Yang Z, Wang G, et al. A CNN-Based Optimal
CTU [λ] Decision for HEVC Intra Rate Control[J]. IEICE Transactions on Information and Systems,2021,D(10):1766-1769.
[13] He K, Zhang X, Ren S, et al. Deep residual learning for
image recognition[J]. Proceedings of the IEEE conference on computer vision and pattern recognition,2016:770-778.
[14] K. Suehring. JVET common test conditions and software
reference configurations[R].Joint Video Explor. Team, Tech. Rep. JVET-B1010,2016.