Video Coding / Block Partition

Block Partition,Video Coding 的基础。

H.264

  • macroblock 16x16, 在一个MB内划分PU, TU
    • I macroblock(intra)
      • PB: luma 4x4, 16x16; chroma: 16x16
    • P/B macroblock(inter)
      • PB: 2Nx2N, Nx2N, 2NxN, NxN
        • macroblock 进一步 PU 划分
    • TB within an MB: 4x4 DCT2; 8x8 DCT2 in FRExt

大分辨率序列上效率低

H.265

  • CTU: 64X64 —-quad-tree—-> CU: 8x8, 16x16, … 64x64

    • CU —> PU

      • intra: 2Nx2N, NxN(N=4, 8, 16, 32)
      • inter: 2Nx2N, Nx2N, 2NxN, NxN, AMP
    • CU —-Residual quad tree—-> TU

      • 4x4, 8x8, 16x16, 32x32 DCT-2
      • 4x4 DST-7 for intra 4x4 luma block

H.266

  • CTU 128x128 ——QT + MTT(multi-type-tree)—-> CU: 8x8, 16x16, … 128x128

    • MTT
    • 左下的CTU经历了三次划分,(编码端决策)复杂度已经很高

    • CU划分灵活,取消PU

    • CU —->TU(取消RQT划分)
      • ISP(intra subpartition)
      • SBT(sub-block transform)

CTU —> CU

QT-MTT

划分中止条件(VVC):划分到最小 CU 块;达到规定的最大二级树的划分深度


AV1 划分实质上是 QT+MTT,MTT最大划分到两次。(少于QT+MTT,MTT depth2,故划分上AV1灵活性不如 VVC)

split syntax

首先确定五种划分模式中哪些可用(复杂)

  • example: allow quad-split

CST(VVC only)

  • for I slice, chroma的划分可以与luma不同。

    • intra 中 chroma 通常比 luma 简单可以划分成更少的块
    • CCLM技术: 用 luma 的重建信号预测 chroma,luma 预测质量高,没必要划分成更小的块

other improvements

  • redundancy removal

  • 图像边界强制划分

CU —> TU

ISP(a.k.a SDIP) for intra CU

  • all luma CU 可以被划分为2个或4个预测模式相同的 TU
  • chroma 不划分,残差较小,用大的变换效率较高
  • 出于硬件复杂度考虑,luma TB 必须至少包含16个像素

SBT for inter CU

  • motivation:多数inter情况下,残差只出现在块的一侧
  • CU划分为两个sub-TU:一部分为残差,另一部分强制不传

硬件实现考虑

  • VPDU 以64x64节点为单位处理,不能出现跨多个节点的单元

  • local dual tree 可能出现少于16个像素的chroma块
    • intra:luma继续划分,chroma停止划分
    • inter:不存在该问题

增益