HM编码架构

首先进入编码encmain.cpp里的int main 函数,主函数的入口,里面包含的重要函数是时间计数函数和encode()函数。

在encode函数中开始编码。encode函数中,首先输入YUV序列,初始化内部类和成员变量,转换色彩空间,创建原始的YUV缓冲区,读取YUV文件,然后开始编码每一帧。最后删除原始YUV缓冲区及使用的类,打印总的码率。里面包含的重要函数是TEncTop::encode。

在encode函数中,文件初始化,缓存区,计算图像特征之后,开始压缩GOP。重要函数是compressGOP()。

compressGOP 中重要函数是predcompressSlice()和compressSlice().

compressSlice()中重要函数是compressCTU()。

compressCTU()中重要函数是xcompressCU().

xcompressCU()对每一个CU进行编码。首先进行初始化,计算参数。然后做帧间预测和帧内预测。包含的重要函数是xComputeQP(),用于计算QP,该函数里面不在包含其他重要函数。在帧间预测中,重要函数是xCheckRDCostInter(),里面的重要函数是xCheckRDCostInter和xCheckRDCostMerge2Nx2N,在xCheckRDCostInter中重要函数是xCheckBestMode()用于检验是否是CU最优深度。在xCheckRDCostMerge2Nx2N重要函数是motionCompensation()和encodeResAndCalcRdInterCU,以及最重要的函数getInterMergeCandidates(),xCheckBestMode

猜你喜欢

转载自blog.csdn.net/summerlq/article/details/80060989