以及函数copyPartFrom()和xCheckBestMode()该函数实现的功能:遍历每个预测模式,通过比较率失真代价值得到最优的预测模式,保存到参数rpcBestCU中然后通过调用自身进行子CU的编码。遍历每种预测函數时均使用rpcTempCU参数,参数rpcTempCU主要有两个作用:1.存放每一个预测函数的最优参数然后通过xCheckBestMode()
函数将最优参数传给rpcBestCU;注意的是,在进行下一个预測函数之前rpcTempCU会被初始化,模式信息、代价值、失真和码率等参数将会被清零;2.存放子CU的最优信息当CU进行回溯裁剪时,通过比较rpcBestCU和
rpcTempCU两个參数的率失真代价值进行判断是否划分copyPartFrom()函数实现的是将子CU的最优信息传递给rpcTempCU。参数eParent是父CU的最优预测模式这个参数在进行非对称分割模式的预测时会用到。子CU总的率失真代价值的计算:这个率失真代价值的计算并不是将子CU的最优率失真代价值进行相加得到而是根据总的夨真和码率进行计算。这是因为在预测完成后还会增加一定的码率,如编码分割标志位函数简介如下:
1. xCheckRDCostMerge2Nx2N():merge和skip模式的预测函数,当残差為0时为skip模式。这个函数与普通的帧间预测函数的区别是没有运动估计过程
2. xCheckRDCostInter():普通帧间模式2N×2N、N×N、N×2N、2N×N、2N×nD、2N×nU、nL×2N和nR×2N的预测函數,主要包括运动估计和运动补偿两个过程作用:进行预测,得到每种帧间模式的率失真代价值、失真和码率并通过比较得到最优的幀间模式。
3. xCheckRDCostIntra():帧内预测函数帧内模式包括平面模式、DC模式以及33种角度预测模式。