1、 电视技术 第 46 卷第 12 期(总第 565 期)77PARTS&DESIGN器件与设计文献引用格式:陈华炜,吴林煌.一种基于 x265 的帧级基础量化参数确定方法 J.电视技术,2022,46(12):77-82,88.CHEN H W,WU L H.A method for determining basic quantization parameters at frame level based on x265J.Video Engineering,2022,46(12):77-82,88.中图分类号:TP311.5 文献标识码:A DOI:10.16280/j.videoe.20
2、22.12.017一种基于 x265 的帧级基础量化参数确定方法陈华炜,吴林煌(福州大学 先进制造学院,福建 晋江 362200)摘要:为了提高视频编码的率失真性能,x265 编码器中的前瞻模块为码率控制部分做了许多决策,如帧类型决策、编码单元CU 的量化参数(Quantized Parameter,QP)偏移等。然而,x265 中忽略了初始帧基础量化参数PQ0的确定,导致所有后续以初始帧为参考帧的帧图像质量下降。同时,帧级QP只由长期历史帧复杂度决定,导致对最近的帧变化不敏感。针对上述问题,提出一种充分利用前瞻模块来修正初始帧基础PQ0以及通过下采样 SATD 值改进 P 帧基础 QP 的算
3、法。实验结果表明,在默认预设条件下,提出的算法使得率失真性能 BD-rate(PSNR)与 BD-rate(SSIM)分别降低了 14.33%与 16.22%,同时满足比特约束要求,有效提升了编码质量。关键词:视频编码;码率控制;x265;前瞻模块A Method for Determining Basic Quantization Parameters at Frame Level Based on x265CHEN Huawei,WU Linhuang(School Of Advanced Manufacturing,Fuzhou University,JinJiang 350108,Ch
4、ina)Abstract:In order to improve the rate distortion performance of video coding,the look ahead module in the x265 encoder makes many decisions for the rate control part,such as frame type decision,Quantization Parameter(QP)offset of the encoding unit CU,etc.However,the determination of the basic qu
5、antization parameter PQ0 of the initial frame is ignored in x265,resulting in the degradation of the image quality of all subsequent frames with the initial frame as the reference frame.At the same time,the frame level QP is only determined by the long-term history frame complexity,which makes it in
6、sensitive to the latest frame changes.To solve the above problems,this paper proposes an algorithm that makes full use of the look ahead module to modify the initial frame base PQ0 and improves the P frame base QP by down sampling the SATD value.The experimental results show that under the default p
7、reset conditions,the proposed algorithm reduces the rate distortion performance of BD rate(PSNR)and BD rate(SSIM)by 14.33%and 16.22%,respectively,while meeting the bit constraint requirements,and effectively improving the coding quality.Keywords:video coding;rate control;x265;lookahead module0 引 言码率
8、控制作为视频编码中的基本技术,在带宽受限的实际通信中起着至关重要的作用,其功能是为各个粒度找到合适的量化参数,使其在指定的码率约束情况下率失真代价(Rate Distorition cost,RD cost)最小。码率控制技术主要通过动态地调整编码参数来实现,涉及目标比特分配和编码参数的计算。目标比特分配主要是依据目标码率、帧率、缓存区占满度以及图像的复杂度等信息,在图像组(Group of Pictures,GOP)、图像(Picture)、编码单元(Coding Unit,CU)等不同粒度分配合适的目标比特。编码参数的计算主要是依据目标比特以及码率控制模型的参数,给当前帧或是当前编码单元设
9、定适当的编码参数,以使得最终的输出码率稳定地维持在目标码率。在 HEVC(High Eiffciency Video Coding)1早期版本的参考软件 HM8.0 中,码率控制算法采用文献 2 所提出的 URQ(Unified Rate Quantization)二次模型,也被称为 Q 域码率控制,即建立比特 R 与量化参数(Quantized Parameter,78电视技术 第 46 卷第 12 期(总第 565 期)PARTS&DESIGN器件与设计QP)之间的二次关系;文献 3 针对 R-Q 模型存在的不足,通过以拉格朗日乘子为纽带建立了 R-与-QP 模型,并采用固定帧比例分配比特
10、方案来获得编码单元的量化参数;文献 4 则利用率失真优化理论提出自适应动态调整帧比特分配算法改进R-模型码率控制。由于 域码率控制算法在码率精确度和编码性能上都优于 Q 域码率控制算法,实现了 0.56%的码率精确度与 1.08 dB 的 RD 性能提升,后续该算法也被集成进 HEVC 参考软件当中。上述码率控制算法都忽略了编码过程中数据依赖性对码率控制的影响。具体来说,提高一个重要帧的编码质量将有助于减少所有以其为参考帧的编码帧失真。因此,在时空相关的编码环境中,考虑最优比特分配更有利于编码质量的提高。例如,针对 HEVC 码率控制算法所进行的研究中,文献 5针对现有比特率模型对于视频内容的
11、动态变化敏感提出一个帧级比特率模型,文献6、文献7、文献8提出了基于视频内容特征的比特分配方法,都提升了率失真性能。而在 H.264/AVC 软件编码器 x2649中,采用了宏块树(Macroblock-tree,MB-tree)技术来考虑宏块(Macroblock,MB)级别的数据依赖性。该技术由x2659继承,并命名为编码单元树(Coding Unit-tree,CU-tree)。x265 作为一款高性能的软件编码器,在工业界有着重要地位。在 x265 的原有算法中,每帧都有其帧级基础量化参数,并通过CU-tree 算法确定各个 CU 的量化参数偏移量。对每个 CU 来说,其量化参数等于帧
12、级基础量化参数与 CU-tree 所计算的对应偏移量之和。文献 10 针对 CU-tree 方法,提出了一种新的线性失真传播模型来估计编码时间依赖性,并引入了量化的影响来提升编码性能。然而,x265 对于其初始帧帧级量化参数PQ0的确定,却没有考虑任何视频内容特征而仅仅依据经验确定,后续帧级 QP 也仅由长期历史帧复杂度决定。文献 11 利用初始帧的熵与帧内DC1616 的预测值作为复杂度衡量,与每像素比特bpp一起建立与PQ0的关系式;文献 12 利用平均绝对误差(Mean Absolute Difference,MAD)来拟合bpp与PQ0的关系;文献 13 预编码一个 GOP,利用宏块方
13、差以及两帧像素绝对误差和预测图像复杂度建立R-C-Q模型,从而获得PQ0提升了RD性能。但这些研究或是没有考虑编码时域关系,或是需要在前几帧编码完成后才能进行,且计算复杂、运算量大,还有进一步改进的空间。为了克服上述问题,本文充分利用前瞻模块所得到的信息,考虑后续帧对初始帧的参考程度和初始帧梯度信息,对初始帧基础PQ0进行估计;对后续P 帧,利用下采样哈达玛变换绝对误差和(Sum of Absolute Transformed Difference,SATD)评估当前帧复杂度,对P帧基础QP进行修正。实验结果表明,改进的算法能有效提升 RD 性能。1 x265 帧级 QP 算法1.1 CU-T
14、ree 算法CU-tree 的本质是评估每个 CU 的信息量,有助于待编码视频帧的预测。每个 CU 根据 CU-tree 所计算的遗传代价 propagate_cost 表示未来帧依赖于这个 CU 的程度,被初始化为 0,并由 CU-tree 推导得出。对于每一帧,CU-tree 在每个 CU 上执行如下步骤。(1)计算从当前 CU 继承到其参考 CU 的信息分数,称为传播分数F,例如一个 CU 的帧间代价cinter只有帧内代价cintra的 80%,说明帧间预测节省了 20%的编码消耗,则该 CU 的信息有 20%来自帧间预测,定义如下:interintra1cFc=(1)式中:cinte
15、r和cintra分别为帧内模式和帧间模式的SATD 代价之和。如果cinter远大于cintra,F设为 0。(2)该 CU 依赖于其参考 CU 的信息总量称为传播量A:A=F(cintra+cpre)(2)式中:cpre为该 CU 提供给后续帧的信息。(3)由于参考 CU 不一定位于 CU 的网格上,因此参考系中多个参考 CU 的传播代价根据重叠区域累积:overlapcuacAa=(3)式中:aoverlap/acu为参考部分所占一个完整 CU 的面积比。(4)在帧的所有 CU 完成上述信息反向传播的计算后,参考帧中的 CUs 的量化偏移量计算如下:qp2intralog1casc=(4)
16、电视技术 第 46 卷第 12 期(总第 565 期)79PARTS&DESIGN器件与设计式中:s是一个由实验得出的常数。1.2 帧级基础 QP 确定x265 中定义了帧级的基本量化尺度:q110100.04nciiindiiCQfR=(5)式中:10niiC=表示累计复杂度,10niiR=表示对应目标比特,cq表示量化曲线压缩系数,默认为 0.6;fd表示每帧停留时间,n表示帧数。量化尺度通过式(6)转换成量化参数PQ:Q2126 log0.85QP=+(6)原算法的缺点来自于对初始帧量化参数的计算。对于初始帧,C0表示为C0=0.01(7105)cqt(7)式中:t表示一个与视频序列分辨率有关的常数(当分辨率大于 720p 时,t=2.5;否则t=1),R0则为每帧平均比特。因此对于初始帧而言,其基础量化参数值的确定只与当前视频序列的分辨率、目标比特(即每像素比特bpp)有关。当视频序列的bpp相同时,不同视频序列初始帧的基础量化参数PQ0将会得到相同的值。显然,最佳的PQ0不应只考虑bpp的因素,还应考虑到视频内容的影响,内容包括时域以及空域。2 算法改进2.1 bpp对PQ0