之前对帧内的一部分理解有很多误区,记录下刚纠正过来的知识点(慢慢更新):
1.xIntraCodingTUBloc函数里没有熵编码过程,这个函数的主要功能是重构图像,以用于下一帧图像的预测,同时还会传出失真,用于计算RD cost;
2.执行完xIntraCodingTUBloc后,有一个计算比特数的函数,而此比特数指的是编码残差系数的比特数,不包括其他;此比特数和xIntraCodingTUBloc函数传出的失真计算一个RD Cost,去选择是否跳过变换和是否使用CCP技术;
3.在xRecurIntraChromaCodingQT函数后,也有一个计算比特数的函数,此时的比特数就包括编码帧内的头信息(预测信息等各种flag),残差系数和CBF等(所有还是大部分需要熵编码信息?)。此比特数和xRecurIntraChromaCodingQT函数传出的失真计算一个RD Cost去选择最优的帧内预测模式;
4.对于QTBT划分来说,对于帧间,在二叉树划分时会限制有二叉树划分成四叉树的冗余,几个例子,如果对当前一个2N*2N的块进行垂直划分,然后对其左块水平划分,如果此时对其右块也进行水平划分,则此时划分得到的和四叉树得到的划分一致,所以在帧间中,会限制右块的水平划分,而在帧内没有此限制,即在帧内划分中,可能会由二叉树划分得到和四叉树划分一致的形状。
5.在编码和解码端,在重建完图像后对重建图像有一个使用双边滤波器的过程,此过程只应用于亮度分量,双边滤波属于环路滤波的第一步,后面还有去方块滤波,样点自适应补偿和ALF。
6.在色度预测中,对于每种预测模式,先对Cb分量执行预测,重建等步骤,再对cr分量执行预测,重建等步骤。对两个分量都执行完后,会计算总的失真和码率,参与不同预测模式之间的RD COST的比较。所以,这样能保证cb,cr的预测模式是相同的。