H.266/VVC 中的率失真优化

摘要

        率失真优化技术在视频编码中扮演了重要的角色,使用其选择最优的编码参数是保证 视频编码效率的关键。但是,率失真优化技术不属于视频编码标准化的范畴,编码器可以使用不同的优化方法选择编码参数。不过,为了追求高编码效率,率失真优化方法是最主要的编码参数选择优化技术。与以往的编码标准相比,H.266/VVC 采用了更先进的编码算法和多种高效的编码工具,因此编码过程也面临更多的编码参数选择 。 对于一个典型的基 混合编码框架的视频编码 系统,有大量编码参数,包括预测模式、运动估计、量化、编码模式等,且每个编码参数 都有多个候选值,如在 H.266NVC 中帧内预测模式包括 65 种角度模式、 DC 模式、 Planar 模式、 MIP 模式等。
        针对 H.266/VVC 标准,首先从理论角度讨论拉格朗日优化方法在图像GOP层、Slice层、CTU层、CU 层如何应用,继而从实现角度介绍 H.266/VVC 参考模型 VTM 中确定最优编码参数的具体过程。由于主要编码参数属于 CTU 层及其以下层,因此本节只关注 CTU 层及其以下层编码单元编码参数的具体优化过程。
图1 拉格朗日率失真优化曲线

一、H.266/VVC 中的率失真优化

1. 视频图像组(GOP)的率失真优化

        时域预测允许使用其他图像组 (GOP) 的图像,图像组已经不是完全独立的编码单元。简单起见,本节讨论的图像组仍看成相互独立编码,但后续的优化方法仍然适用于现有标准的编码结构不同图像组的编码过程相互独立,不同图像组间的编码参数及率失真性能互不影响,因此不同图像组可以独立优化编码参数。

        一个图像组包含多幅图像,时域预测技术把当前编码图像与参考图像关联起来,图 2 给出了 个低时延编码结构。可以看到,第 1幅图像作为后续多幅图像的参考图像,这就使得这些图像的率失真性能相互依赖。因此,GOP率失真优化过程需要考虑图像之间的依赖关系 。对于给定GOP,视频编码的率失真优化是指在满足该图像组编码比特数(目标比特数)限制条件下获取1组最佳的编码参数集,使用该编码参数集可以获得最优的重建视频质量。

图2 低时延编码结构

       图像组率失真优化可以通过依次独立确定每幅图像的最优编码参数来实现,每幅图像通过\omega_{i }值来反映其与后续图像率失真性能的依赖关系。\omega_{i }主要与视频的内容特性和总目标比特数相关,可以通过实验方法获取。

        J_{i}表示第 i 幅图的率失真代价,D_{i}表示为第 i 幅图像的失真,R_{i}是该图像的比特数,\mu_{j,i}为常数,表示第 j 幅图像的失真受第 i 幅图像失真的影响程度,\omega_{i}b表示当前图像与后续图像率失真性能的依赖关系。

2. 片层(Slice)的率失真优化

         在H.266/VVC 标准中,片 (Slice) 是相对独立的编码单元,如嫡编码、帧内预测、运动矢量预测等关键编码模块都不使用当前图像其他片的信息,只在片边界进行环路滤波时可能会使用相邻片的信息。空域预测技术使 CTU 间的率失真性能相互影响,如帧内预测使用相邻 CTU 重建像素值,运动矢量预测使用相邻 CTU 的运动矢量。这种空域预测关系复杂多变,CTU间率失真性能的相互关系更难描述,片层的率失真优化的关键是明晰 CTU间率失真性能的关系。目前,率失真优化中CTU间率失真性能的相关性还未被考虑,通常按CTU具有独立的率失真性能进行优化。

3. CTU 级的率失真优化

        CTU是H.266/VVC 的基本编码单元,每个 CTU 可以被划分为不同的编码单元 CU, 每个 CU 可以选择不同的预测模式 因此,可以把 CTU 编码参数的优化过程分成: CTU 主要选择不同的 CU 划分模式、 CU 层主要选择不同的预测模式每个 CTU 可以以多类型树的形式被划分为不同的编码单元 CU, 包括从最大 128x128到最小 4x4 的多种正方形、矩形划分,具体的 CU 划分模式是 CTU 的关键编码参数。 CTU 层的率失真优化目的是确定最优的 CU 划分模式,也称为 CU 划分模式选择 CTU 层的 CU 划分模式选择的率失真优化问题可以描述为:在总比特数受限的情况下,选择 CU 划分模式,使 CTU 的总失真度 最小。

4. CU 层的率失真优化

        H.266/VVC 中,每个 CU 可以采用不同的预测模式。 预测模式主 要可以分为两类:帧内预测模式和帧间预测模式。 CU 层率失真优化的目的是为 CU 选择最优的预测模式及预测参数帧内预测是利用当前图像己编码的像素对当前编码块进行预测,H.266/VVC 提供了 65 种角度模式、 DC 模式、 Planar 模式、 MIP 模式等。帧内预测就是选择一 种最优的预测模式,可以采用基于拉格朗日优化法的率失真优化方法:
        其中,D(Mode)和  R(Mode) 分别表示采用不同帧内预测模式时的失真和比特数;如 \lambda_{Mode} 为拉格朗日因子。最优的预测模式为率失真代价最小的模式。粗选时 D(Mode)为 SAD和 SATD的最小值,细选时 D(Mode) 为 SSE。
        帧间预测是利用已编码其他图像的像素预测当前编码块, H.266/VVC 允许使用不同的 运动矢量、多个参考图像、 Merge、 AMVP 和仿射等技术。因此,帧间预测模式需要结合 Merge、AMVP 等技术,为每个 CU 选择运动矢 量、参考图像、预 测权值等编码参数。可以 采用基于拉格朗日优化法的率失真优化方法:

        其中,D(Motion)和 R(Motion) 分别表示采用不同帧内预测模式时的失真和比特数;如\lambda_{Mode}为拉格朗日因子。最优的预测模式为率失真代价最小的模式。 对于一个采用帧间预测的 CU, 包含大量的运动模式,计算每种运动模式下的 D(Motion)、 R(Motion) 都需要使用该运动模式进行编码,计算复杂度极高 通常可 以将式 简化为:

 

        其中,DFD(Motion) 为采用不同运动模式时运动补偿预测误差; R_{MV}(Motion)为运动矢量 相关信息(运动矢量、参考图像索引、参考队列索引等)的编码比特数;如\lambda_{Motion}为拉格朗日因子。

二、VTM 中的率失真优化实现

        目前,实际的视频编码率失真优化过程包括两部分:速率控制部分将视频序列分成编码单元,考虑编码单元的相关性通过码率分配技术确定每个编码单元目标码率,根据目标码率独立确定关键编码参数化参数;利用拉格朗日优化法确定每个编码单元的其他编码参数(除量化参数外)。

1. CTU 编码优化

        计算每个编码参数组合的率失真代价都需要采用这组编码参数对 CTU 进行编码,这会导致计算复杂度非常高。为了降低计算复杂度,可以根据不同的编码参数采用不同的简化 方法。帧间预测中的失真为运动补偿预测误差,可以写为:

         其中Diff(i,j) 表示编码单元经过运动补偿后预测误差位于 (i,j) 处的值。另外,采用 Hadamard 变换代替实际的 DCT (DST) 也可以有效降低计算复杂度,且其率失真性能与使用 DCT(或 DST) 相近。

        拉格朗日因子是采用拉格朗日优化法确定编码参数的关键。速率控制已经为每个 CTU 确定了量化参数,然后可以根据拉格朗日因子与量化参数的关系进 步确定拉格朗日因子 VTM 中使用了两个拉格朗日因子:\lambda_{Mode}\lambda_{Motion}

        其中, QP 为量化参数;W_{k}表示加权因子,该值由编码配置和编码图像在 GOP 中所处的位
置决定 变量 \alpha 的取值与当前图像是否作为参考图像有关,计算方法为:

        其中,N_{B}表示 参考图像个数以上为亮度分量的拉格朗日因子,而色差分量的拉格朗日因子计算方法为:

         其中, QP_{chroma }为色度分量的量化参数。

2. CU划分模式判别

        在H.266/VVC 中,每个 CU (不受限时)支持四叉树、 二叉 水平、二叉垂直、三叉水平、 三叉垂直等划分结构 因此,一个 CTU 可以递归划分成众多种 CU 划分模式。为了便于 表述,将深度为0 的 CU 记为 LCU, 将深度为 1 的 CU 记为CU_{i}   ,将深度为 2 的 CU记为CU_{i,j} 将深度为 3 的 CU 记作 CU_{i,j,k} 将深度为 4 的 CU 记作CU_{i,j,k,l} 如图 3 所示, 其中 i,j,k,l  表示各 CU 在父块中的序号,取值范围如下:
  • 当父块为四叉树划分时,取值范围为 {0,1,2,3};
  • 当父块为三叉树划分时,取值范围为 {0,1,2};
  • 父块为二叉树划分时,取值范围为{0,1}。
图3  CU模式划分过程

         在划分过程中就进行率失真代价的计算。以128x128的LCU为例,首先尝试四叉树划分(QT),每次划分都记录相应划分的率失真代价,划分到最底层后(尺寸达到最小或其他规则不能再继续向下划分),比较各个层级划分的率失真代价,选择最小的作为最终的划分方案。每次划分要遍历不同的划分模式,并且划分到不能划分为止,因此具有较大的复杂度。

3. 帧内预测模式判别

4. 帧间预测模式判别

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值