VTM中对于I帧的亮度和色度域分别进行compress和encode的问题
在HM和JEM中,无论是I、B、P帧,对一个块的定义,就是这个块包含了对应位置处的Y/Cb/Cr所有分量
所以对这个块的compress过程和encode过程,色度和亮度域都是一步进行的。编码过程并不会刻意区分色度亮度分量,来分开处理亮度的和色度的compress和encode
这时的CTU划分为cu的划分树,无论是亮度还是色度分量,都是一样的不加区分的。一个cu或pu,就代表了Y/Cb/Cr的所有分量
VTM为了在帧内预测中,将块的色度分量和亮度分量的紧密联系划分开,为了对块的色度分量有更好的帧内预测效果,就有了现在VTM中的DualITree
DualITree也就是VTM中,对于I帧的亮度和色度分量,会分别进行xCompressCU和encodeCU,即I帧CTU的亮度和色度分量,拥有着完全不同的划分树,所以I帧的CTU,就有了亮度cu、亮度pu和色度cu、色度pu的分别
VTM中有一个函数isDualITree(),只有当当前帧为I帧,并且使用亮度色度二重树时,返回为true。此时就表明I帧的亮度和色度分量需要分开来处理
DualITree情况的考虑,在VTM编码端主要体现在三个地方:
compressCtu函数、coding_tree_unit函数、xCheckRDCostIntra函数
compressCtu函数中会对DualITree情况时的CTU,再进行一次色度域xCompressCU,以获得DualITree情况时chroma分量的cu划分,以及色度域的pu;
coding_tree_unit函数和compressCtu函数的情况类似&#x