基于失真反向传播的时域依赖率失真优化

2023-01-27 09:08郭红伟朱策杨栩罗雷
通信学报 2022年12期
关键词:码率拉格朗时域

郭红伟,朱策,杨栩,罗雷,3

(1.红河学院工学院,云南 蒙自 661100;2.电子科技大学信息与通信工程学院,四川 成都 611731;3.重庆邮电大学通信与信息工程学院,重庆 400065;4.成都师范学院物理与工程技术学院,四川 成都 611130)

0 引言

随着互联网和多媒体信息处理技术的发展,视频数据量呈爆发式增长。为了降低视频存储和传输成本,近30 年来,工业界联合学术界推出了多个视频编码标准,例如,高级视频编码(AVC,advanced video coding)H.264/AVC[1]、高效视频编码(HEVC,high efficiency video coding)H.265/ HEVC[2]和通用视频编码(VVC,versatile video coding)H.266/VVC[3]等。数字视频中包含空间、时间、视觉和信息熵等多种信息冗余,为了去除上述冗余实现高效数据压缩,当前视频编码标准采用基于块的混合编码框架,包括预测、变换、量化和熵编码等模块。视频编码过程中,输入视频序列被分级划分为许多子任务,例如,图像组(GoP,group of picture)、编码帧和基本编码单元。H.264 中的基本编码单元是宏块(MB,macro block),HEVC 和VVC 中的基本编码单元是编码树单元(CTU,coding tree unit)。在各种标准的视频编码器中,采用基于拉格朗日乘子的率失真优化(RDO,rate-distortion optimization)方法为一个基本编码单元选择最佳编码模式以达到最优的率失真性能。

为了进一步提升编码器率失真性能,近年来一些文献研究视频编码过程中的率失真依赖关系,提出多种依赖RDO 方法。针对H.264 帧内编码,文献[4]通过调整4×4 像素块的率失真代价运算方式改善下边界和右边界像素的编码质量,一定程度地改善了编码性能。针对HEVC 编码器,文献[5]通过分析帧内预测时编码单元之间的模式选择空域依赖性,提出对垂直方向上的2 个编码单元进行联合优化,该方法以增加数倍编码运算复杂度为代价实现了大约0.7%的率失真性能提升。文献[6]对文献[5]方法进行了降低复杂度优化,使运算复杂度降低到原始HEVC 编码器的同时提升率失真性能。优化帧内预测编码带来的压缩性能提升有限,而且相应的运算复杂度增加较大,因此针对空域依赖RDO 的方法相对较少。

针对HEVC 的分级固定量化参数(QP,quantization parameter)设置,文献[7-10]提出了低时延编码配置下的自适应QP 级联(QPC,QP cascading)方法,其根据视频内容变化动态地设置编码帧的QP。类似地,文献[11-13]提出随机接入配置下的QPC 方法。这些方法根据帧间率失真依赖关系自适应调整GoP 中视频帧的编码QP,然后一帧内所有CTU 均采用相同的QP 进行编码。文献[14]采用原始视频帧作为参考,通过预编码估算时域失真传播,提出CTU 级的自适应QP 设置,获得了比帧级QPC 方法更高的率失真性能。

文献[15]通过分析信源失真在H.264 视频编码中的时域传播,建立信源失真时域扩散模型,自适应地调节MB 的拉格朗日乘子,获得了非常显著的率失真性能提升。文献[16]和文献[17]把上述信源失真时域扩散模型扩展到HEVC 的低时延和随机接入编码结构,同样提升了率失真性能。文献[18]在高码率条件假设下认为参考像素的编码失真不影响后续编码单元的失真而是影响码率,通过考虑当前编码单元失真对后续编码单元码率的增量,提出自适应拉格朗日乘子和QP 选择方法。上述方法均需要缓存后续待编码帧以建立时域传播链。文献[19]提出只考虑失真直接传播的自适应拉格朗日乘子选择方法,其不需要缓存后续待编码帧,但率失真性能低于文献[16]方法。此外,文献[20-22]把率失真依赖关系应用到HEVC 码率控制[23]的帧级和CTU 级最优比特分配,改善了码率控制下的率失真性能。针对HEVC 码率控制方法感知率失真性能较低的问题,文献[24]提出了一种视频主观观测实验启发的感知帧内码率控制方法。

不同于上述基于预分析的自适应QPC 或自适应拉格朗日乘子选择算法,本文提出一种基于失真反向传播模型的时域依赖RDO 算法,该算法在编码当前帧时不需要缓存后续待编码帧。本文的主要研究工作如下。

1) 根据指数形式率失真函数,推导出时域失真传播因子可表示为编码失真除以运动补偿预测误差。为避免缓存后续帧进行预分析,采用失真反向传播模型近似真实的失真前向传播。解决了编码块时域传播因子估算问题。

2) 分析了HEVC 低时延分级编码结构下的QP和拉格朗日乘子设置,根据16×16 像素块的时域传播因子确定CTU 的权重系数,结合帧级拉格朗日乘子确定自适应的CTU 级拉格朗日乘子和QP,实现编码比特资源分配优化。

3) 实验结果表明,在低时延B 帧(LDB,low delay B-frame)和低时延P 帧(LDP,low delay P-frame)编码器配置下,相比于HEVC 基准编码器,本文算法分别获得了平均4.4%、4.3%和最高13.0%的码率节省,在调节I 帧QP 后,平均码率节省可进一步提高到6.4%。

1 时域依赖RDO

RDO 技术贯穿于整个视频编码过程,其目标是在有限码率条件下最小化编码视频失真[25],可描述为一个约束优化问题,即

其中,Di和Ri分别是第i个编码单元的失真和码率;N是总的编码单元数;RT是总共可用的码率预算。

通过引入拉格朗日乘子,式(1)的约束优化问题可以被转换为

其中,J是全局率失真代价函数;oi是第i个编码单元的编码模式选择;λg是全局拉格朗日乘子,较小的λg失真较小但码率消耗较多,反之则失真较大而码率消耗较少。实际上,由于编码单元之间存在率失真依赖关系,式(2)所示的最小化问题在视频编码中难以实现。通常地,视频编码过程中假设编码单元之间相互独立,对每一个编码单元单独进行优化,表示为

其中,Ji是第i个编码单元的率失真代价函数;λi是第i个编码单元进行模式选择采用的拉格朗日乘子。这种编码单元独立的假设使基于拉格朗日乘子的RDO 方法易于在编码端实现,但该独立优化不能使视频编码达到最优的率失真性能。

事实上,为了使式(2)所示的全局率失真代价函数J最小,可令J对第n个编码单元失真的一阶导数为零,表示为

这里的编码单元表示HEVC 中独立进行编码模式选择的CTU。由于帧内预测、运动矢量预测和基于上下文的熵编码等,一帧内相邻CTU 之间存在编码决策依赖,但文献[4-6]的研究表明,这种编码决策依赖所引起的空域率失真依赖性较小。对于帧间预测,当前块的编码质量会显著地影响后续参考块编码单元的压缩性能。文献[15]分析表明,编码单元码率仅由它自己的编码选择决定,而编码单元失真与参考块编码质量相关性很强。

为了验证上述对视频编码过程中空域和时域率失真依赖性的描述,设计了以下实验。首先用原始HEVC 测试模型(HM,HEVC-test model)在低时延P 帧编码配置下编码如图1(a)所示的测试序列Basketball Pass(416 像素×240 像素),编码器输入QP 分别采用22、27、32 和37,根据第2 帧的4 个码率点得到图1(c)中实线所示的率失真曲线。其中,D(MSE)表示使用均方误差(MSE,mean square error)描述失真。为观察帧间编码中参考帧编码质量变化对编码帧的率失真特性影响,修改HM 使第1 帧的QP 比原始设置小5,其他编码工具和编码结构均不做任何改变。用修改后的HM 编码测试序列再次得到第2 帧的率失真曲线如图1(c)中虚线所示。从图1(c)中可知,改善第1 帧编码质量后,第2 帧的率失真曲线明显下移。此外,如图1(b)所示,把测试序列的第1 帧划分为2 个区域,第1 个~第22 个CTU 作为第1 个区域,第23 个~第28 个CTU 作为第2 个区域。采用原始HM 编码后,统计第2 个区域的4 个码率点得到图1(d)中实线所示的率失真曲线。为观察第1 个区域的编码质量变化对第2 个区域的率失真特性影响,修改HM 使第1 个区域中CTU 的QP 值比原始设置小5,第2 个区域中CTU 的编码方式不做任何改变。用修改后的HM 编码测试序列第1 帧再次得到第2 个区域的率失真曲线如图1(d)中虚线所示。从图1(d)中可知,改善第1 个区域编码质量后,第2 个区域的率失真特性没有明显变化。

图1 率失真依赖性

基于上述分析,式(4)左侧的码率求和项对Dn的一阶导数可写为

其中,λn是HEVC 编码CTU 所采用的拉格朗日乘子。在编码器中,CTU 按顺序被编码,在编码第n个CTU时,前面的第1 个~第n-1 个CTU 已经编码结束,它们产生的码率和失真已经确定,即D1~Dn-1为常量。因此,式(4)左侧失真求和项对Dn的一阶导数可表示为

把式(5)和式(6)代入式(4),整理得到

其中,kn表示第n个CTU 编码失真变化引起后续直接和间接参考它的编码单元总失真变化率,称为时域失真传播因子。时域依赖RDO 通常采用式(7)的拉格朗日乘子调节CTU 的编码优化目标,以改善率失真性能。

对于时域失真传播因子的估计,文献[15]针对H.264 中的IPPP 编码结构,首先在原始视频帧中通过前向运动搜索建立如图2 所示的时域传播链,从而确定被当前编码块失真直接和间接影响的后续像素块;然后提出信源失真时域扩散模型计算时域失真传播因子。由于HEVC 采用具有多参考帧的分级编码结构,当前CTU 编码失真具有多条传播路径,使时域传播因子估计变得非常困难。针对HEVC低时延分级编码结构,文献[16]通过统计关键帧和非关键帧在编码过程中被参考的概率,建立具有多分支的时域传播链,从而把信源失真时域扩散模型扩展到HEVC 低时延分级编码结构中。

图2 时域传播链

2 基于失真传播模型的依赖RDO 算法

2.1 时域失真传播因子

根据式(7),时域失真传播因子表示为

式(8)涉及失真变化量,因此视频编码过程中难以直接采用式(8)计算传播因子。

视频编码中,在高码率条件下,编码码率和失真之间的关系可表示为[15]

同理,式(15)中的Cn+2也是与时域传播链上原始参考像素块Bn的编码失真nD不相关的项。式(8)中Di表示时域传播链上受nD影响的后续帧中相应像素块编码失真,其下标i=n+1,n+2,…,N。这里的N表示以Bn为起始块的时域传播链上最后一个像素块的序号。由式(15)可写出Di的通式为

把式(16)代入式(8)得到时域失真传播因子为

此外,根据式(9)得到ηt为

因此,不需要获得失真变化量,由时域传播链上各像素块的编码失真和MCP 误差即可计算时域传播因子。

2.2 算法实现

根据式(17)和式(18)计算时域传播因子需要提前编码后续帧以获得编码失真和MCP 误差,而实时视频通信在编码当前帧时,后续帧的图像还没有采集。因此,本文算法采用失真后向传播来近似计算时域失真传播因子,具体步骤描述如下。

1) 计算16×16 像素块的时域传播因子

在HEVC 中,CTU 的大小为64×64 像素块,根据视频内容特性CTU 会被划分为32×32 像素块、32×16 像素块或16×16 像素块等更小的预测单元(PU,prediction unit)进行预测编码。因此,帧间预测中的重建参考像素块可能具有上述不同的形状和大小。本文在算法1 的基础上测试了以32×32 像素块和16×16 像素块为单元计算时域传播因子,结果显示采用16×16 像素块能获得更好、更稳定的率失真性能。例如,在低时延P 帧编码配置下,对于视频ParkScene 和BQTerrace,采用16×16 像素块的算法1 获得了5.5%和1.1%的率失真性能提升;而采用32×32 像素块的算法1 对视频ParkScene 只获得了4.2%的率失真性能提升,对视频BQTerrace 甚至遭受了2.2%的率失真性能损失。这是因为对于场景和纹理较复杂的视频,编码器趋向于选择较小的预测单元编码,这时采用32×32 像素块计算的时域传播因子不够准确。因此,出于率失真性能和算法稳健性考虑,本文最终选择以16×16 像素块为单元计算时域传播因子。为了获得16×16 像素块的MCP误差和编码失真,首先对当前帧进行一次预编码。预编码过程采用HEVC 原有的固定QP 设置,通过检测64×64 像素块、32×32 像素块和16×16 像素块这3 种帧间模式减少预编码时间。预编码后,当前帧中第j个16×16 像素块的时域传播因子由式(19)计算得到。

2) 计算CTU 的权重系数

根据式(19)得到当前编码帧中16×16 像素块的时域传播因子。然后结合式(7)引入CTU 的拉格朗日乘子权重系数为

其中,Wm是第m个CTU 的拉格朗日乘子权重系数;Lm是第m个CTU 中包含的16×16 像素块个数,一般情况下,Lm=16。但由于一些视频序列的空间分辨率不是64 的整数倍,在这些视频帧的右边界和下边界处CTU 中包含的16×16 像素块个数少于16。

3) 自适应拉格朗日乘子和QP

HEVC 采用分级编码结构,低时延配置下,一个GoP 包含4 帧图像,其层级分别为3、2、3 和1,默认编码帧的QP 设置为

其中,QP0是编码器的输入QP;QPOffset是编码帧所属的层级。此外,编码帧的拉格朗日乘子为

其中,ωL是一个与编码帧所属层级和QP 大小有关的权重系数,层级越小,ωL的值越小,计算得到的拉格朗日乘子也越小。式(22)一定程度地考虑了帧级别的时域率失真依赖关系,其倾向于把层级低的帧编码得更好,以减小当前编码失真对后续帧编码失真的影响。

本文算法中,CTU 级拉格朗日乘子由式(22)的帧级拉格朗日乘子和式(20)的拉格朗日乘子权重系数确定。由于式(20)中权重系数总是小于1,为了保持当前帧的总体优化目标不变,采用式(23)和式(24)重新调整CTU 级拉格朗日乘子权重系数,使其均值为1。

其中,M是一帧中包含的CTU 个数。式(24)表示的CTU 级拉格朗日乘子权重系数均值为1,其中具有较大时域传播因子的CTU 权重系数小于1,而具有较小时域传播因子的CTU 权重系数大于1。

最终,当前帧中用于编码各个CTU 的自适应拉格朗日乘子为

由于编码每个CTU 采用了不同的拉格朗日乘子,CTU 的QP 也应该进行相应调整,采用文献[26]中拟合的λ-QP 可得

由式(25)和式(26)得到CTU 级自适应的拉格朗日乘子和QP,然后对当前帧进行编码。为便于对本文算法的理解,算法1 用伪代码描述了本文算法的具体实现过程。

算法1基于失真反向传播的时域依赖率失真优化

输入当前待编码帧

输出CTU 级自适应的拉格朗日乘子λm和量化参数QPm

3 实验结果

3.1 实验设置

为了验证所提时域依赖RDO 算法的有效性,把本文算法集成到HEVC 参考软件HM16.7。与其他大多数视频编码优化算法一样,本文算法通过优化编码比特资源分配来提升编码器率失真性能,不会改变HEVC 码流句法结构,不需要改动解码器。测试实验中,编码器采用LDB 和LDP 分级编码结构,对应的编码器配置文件分别是“encoder_lowdelay_ main.cfg”和“encoder_lowdelay_ P_main.cfg”,参数配置采用上述2 个文件中的默认设置。测试序列为通用测试条件(CTC,common test condition)[27]对LDB 和LDP配置建议的Class B、Class C、Class D、Class E 和Class F 中全部20 个视频,包括了从416 像素×240像素到1920 像素×1080 像素不同分辨率、帧率和场景内容的原始YUV 序列。每个视频序列依据CTC测试输入QP 为22、27、32 和37 的4 个码率点。

对比算法包括文献[9]、文献[10]、文献[16]、文献[18]和文献[19]的算法。其中,文献[9]算法使视频序列起始I 帧的QP 值降低5,即编码器输入QP 为32,则I 帧QP 为27。由于I 帧编码质量对整个视频序列编码影响很大,为了公平比较,本节除了测试上述算法1 描述的本文算法外,还测试了在算法1 基础上直接对I 帧QP 值减小5 以后的算法,命名为本文算法+调节I 帧。另外,本节也测试了算法1 中只调节CTU 的拉格朗日乘子的情况,即不执行算法1 的步骤14),命名为本文算法-调节QP。

3.2 率失真性能对比

为了全面客观地呈现本文算法和其他算法的率失真性能,采用BD-Rate(Bjøntegaard Delta rate)作为评价指标。BD-Rate 表示在相同客观质量下,测试方法相对于基准编码器的码率节省百分比,正值表示率失真性能损失,负值表示率失真性能改善,本文中的客观质量用压缩视频亮度分量的峰值信噪比(PSNR,peak signal-to-noise ratio)度量。实验对比中,把原始未修改过的HEVC 参考软件HM 作为基准编码器。表1 列出了LDB 和LDP 编码配置下,文献[9]、文献[10]、文献[16]、文献[18]、文献[19]和本文3 种算法相对于HEVC 基准编码器的BD-Rate。文献[9]的自适应QPC 算法降低了I 帧QP编码,其获得相对较高的率失真性能提升,在LDB和LDP 编码配置下都达到平均4.9%的码率节省。文献[10]是针对监控视频的自适应QPC 算法,其对监控视频编码获得较高的率失真性能提升,但对于CTC 测试序列,在LDB 和LDP 编码配置下只有平均2.2%和2.3%的码率节省。文献[16]通过建立失真时域传播链估算块间率失真依赖,从而自适应调节CTU 的拉格朗日乘子和QP,在LDB 和LDP 编码配置下分别获得平均3.2%和3.6%的码率节省。文献[18]通过估计编码失真对后续编码单元的码率增量,自适应选择拉格朗日乘子和QP,在LDB 和LDP 编码配置下分别获得平均3.9%和4.3%的码率节省。文献[19]通过分析失真直接传播影响,自适应调节CTU级的拉格朗日乘子,但一帧中所有CTU 仍然采用相同的QP 编码,该方法在LDB 和LDP 编码配置下分别获得平均1.8%和1.7%的码率节省。

表1 不同算法相对于HEVC 基准编码器的BD-Rate 对比

如表1 所示,本文算法在LDB 和LDP 编码配置下分别获得平均4.4%和4.3%的码率节省,率失真性能仅次于文献[9]。而在本文算法基础上直接减小I 帧QP 值后,本文算法+调节I 帧可达到平均6.4%的码率节省,率失真性能提升显著高于文献[9]的自适应QPC 算法。此外,在只调节拉格朗日乘子情况下,本文算法-调节QP 获得平均2.4%和2.0%的码率节省。为了直观地展示本文算法和HEVC 基准编码器对各个视频序列的编码性能,图3给出了LDP 编码配置下全部20 个测试序列的率失真曲线对比。图3 中,纵轴表示压缩视频亮度分量的PSNR,曲线越靠上,表示率失真性能越好。从图3 中可以看到,与表1 的BD-Rate 数据一致,对于绝大多数测试序列,本文算法的率失真性能优于HEVC 基准编码器。特别地,BasketballDrill、PartyScene 和 FourPeople 等测试序列的率失真曲线显示本文算法在低码率和高码率下均获得比HEVC基准编码器HM16.7 更好的压缩性能。

图3 率失真曲线对比

接下来,对实验结果做进一步的讨论。数据显示,对于包含相对静止和缓慢运动目标的视频序列,本文算法最有效。例如,对于Class E 的会议场景视频,在LDB 和LDP 编码配置下,本文算法获得了平均6.9%和7.4%的码率节省。另外,对于背景变化相对缓慢,并包含多个运动目标的视频序列BasketballDrill,本文算法获得了最高13%的码率节省。其原因是这些视频中许多CTU具有很强的时域率失真依赖性,通过改善它们的编码质量可以显著降低编码失真时域传播,从而提升率失真性能。事实上,对于具有固定背景的视频,直接调整I 帧编码质量就能达到明显的压缩性能提升,如文献[10]通过减小I 帧QP,在背景基本不变的监控视频上达到很高的压缩性能,但对于包含多种视频场景的CTC 测试序列,该算法平均性能提升相对较小。本文算法+调节I 帧在LDP 配置时对Class E 的平均码率节省达到了16.6%,证实了I 帧编码质量对具有固定背景的视频影响很大。

然而,时域依赖RDO 和改善I 帧编码质量并非对所有视频序列有效。表1 数据显示,本文算法调节I 帧后,Kimono、RaceHorses 等几个测试序列的率失真性能反而降低了。这是因为这些视频的场景内容变化较快,提升I 帧编码质量对后续编码帧带来的收益较小。另外,LDB 配置下,本文算法在Class C 的RaceHorses(WVGA)上遭受2.0%的性能损失,而在Class D的RaceHorses(WQVGA)上却得到1.9%的性能增益。事实上,RaceHorses(WQVGA)是由RaceHorses(WVGA)降采样得到的,它们具有相同的场景内容。再次观察表1 数据发现,其他几种对比算法[9-10,16,19]同样出现类似的情况,这些算法对分辨率较大的RaceHorses(WVGA)的性能都差于对分辨率较小的RaceHorses(WQVGA)的性能。其原因是RaceHorses 场景中具有复杂纹理和快速运动目标,而高分辨率视频的相邻帧中像素运动尺度更大,很难利用时域率失真依赖进行编码优化。对于下采样后的视频,其相邻帧中像素运动尺度相对减小,因此为时域依赖率失真优化提供了一定的性能提升空间。对于Class F中的测试序列SlideEditing,本文算法也遭受1.4%的性能损失。其原因是该屏幕内容视频包含多个局部场景切换,从而导致失真反向传播估计的时域传播因子出现较大误差。

3.3 算法分析

本文算法采用了预编码以获得当前帧的编码失真和MCP 误差,必然会一定程度地增加编码器运算量。为了评估本文算法的运算复杂度,引入式(27)的编码时间增加百分比。

其中,TProp和TOrig分别是本文算法和原始HM16.7的编码时间。为了降低单个视频序列编码时间波动的影响,使用每一类视频序列的总编码时间计算ΔEncT,结果如表2 所示。实验数据显示,本文算法相对原始HM16.7 的运算复杂度仅增加了23%。这是因为预编码的模式选择过程中只进行64×64 像素块、32×32 像素块和16×16 像素块的帧间预测模式判决,略过了大量8×8 像素块、4×4 像素块和其他对称及不对称的二叉树划分。

表2 本文算法相比原始HM16.7 的编码时间增加百分比ΔEncT

此外,式(19)采用失真反向传播近似视频编码中真实的失真前向传播来估算时域传播因子,选取的反向传播长度太短不能反映失真间接影响,太长则会产生较大的近似误差。为了分析式(19)中反向传播长度对率失真性能的影响,表3 给出了LDP编码配置下设置不同反向传播长度获得的BD-Rate。实验数据显示,反向传播长度设置为3时获得的平均率失真性能提升最大。

表3 LDP 编码配置下设置不同反向传播长度获得的BD-Rate

4 结束语

本文根据视频编码中运动补偿原理和高码率条件下的率失真函数首先推导出时域失真传播因子表达式,然后提出一种基于失真反向传播的时域依赖RDO 算法。该算法不用缓存后续帧建立传播链,采用反向操作近似真实的失真前向传播,通过已编码的两帧和预编码当前帧得到的编码失真及MCP 误差估算时域传播因子,进而自适应地调节CTU 的拉格朗日乘子和QP。实验数据显示,与HEVC 基准编码器相比,本文算法获得了平均4.4%和最高13.0%的码率节省,在增加调节I 帧QP 的情况下,平均率失真性能提升达到了6.4%。最后,本文分析了算法的运算复杂度和反向传播长度对算法编码性能的影响。

猜你喜欢
码率拉格朗时域
移动视频源m3u8多码率节目源终端自动适配技术
一种基于HEVC 和AVC 改进的码率控制算法
这样的完美叫“自私”
基于复杂网络理论的作战计划时域协同方法研究
基于状态机的视频码率自适应算法
拉格朗日的“自私”
这样的完美叫“自私”
山区钢桁梁斜拉桥施工期抖振时域分析
一种用于高速公路探地雷达的新型时域超宽带TEM喇叭天线
背景和共振响应的时域划分及模态耦合简化分析