本文参考了JVET-J1002:Algorithm description for Versatile Video Coding and Test Model 1 (VTM 1)
VVC的编码结构
VVC的编码结构和之前的标准相似,VVC有基于块的混合编码结构,包含了帧内、帧间的预测编码,以及变换编码和熵编码,下图展示了VVC编码的流程 。
VVC块划分
图像将被划分成一系列的CTUs(coding tree units),在这里的CTU的概念和HEVC中是一致的,其中最大尺寸的亮度块在CTU中的尺寸是128×128,而最大的亮度变换块尺寸是64×64,一个CTU划分的例子:
使用树形结构对CTUs进行划分
在HEVC中,编码树将会通过使用表示为编码树的四叉树结构将CTU分成CUs,以适应各种不同的局部特征。在叶子CU level使用帧间或帧内预测来决定是否对当前的图像区域进行编码。根据PU的划分类型每一个叶子CU可以进一步被划分成一个、两个或四个PUs。在一个PU内部,应用相同的预测过程,并且基于PU将相关信息发送到解码器。 在通过应用基于PU分裂类型的预测处理获得残余块之后,可以根据类似于CU的编码树的另一个四叉树结构将叶CU划分为变换单元(TU)。 HEVC结构的关键特征之一是它具有多个划分的概念,包括CU,PU和TU。
在VVC中,使用二叉树和三叉树的嵌套多类型树的四叉树分割结构取代了多个分区单元类型的概念,它消除了CU,PU和TU概念之间的鸿沟,除了对于最大变换长度尺寸太大的CU的需要,并且支持CU分区形状的更大灵活性。
首先,一个CTU被划分为四叉树结构,随后四叉树的叶子节点将被划分为多种类型的结构。如下图所示,有四种不同的划