对一个宏块进行帧内预测的具体过程如下:
(1)对于8x8色度块就选择一种帧内色度预测模式建立相应的帧内预测块;
(2)按遍历的方法分别计算4种Intra_16x16帧内预测模式的代价(Rdcost16x16),选择具有最小代价(Rdcost16x16)的模式作为16x16亮度块的最佳帧内预测模式,进而获得该宏块在16x16亮度块帧内预测模式下的率失真开销(RdcostMB)。
(3)对于4x4亮度块选择一种Intra_4x4帧内预测模式建立相应的帧内预测块。
(4)用拉格朗日率失真函数计算该预测模式下的代价(Rdcost4x4)。
(5)重复3,4步,遍历所有9种4x4亮度块帧内预测模式,选择具有最小代价(Rdcost4x4)的模式作为4x4亮度块的最佳帧内预测模式。
(6)对当前宏块中16个4x4亮度块重复第3步至第5步,获得每一个4x4亮度块的最佳帧内预测模式和相应的代价Rdcost4x4,进而获得该宏块在4x4亮度块帧内预测模式下的率失真开销(RdcostMB)。
(7)选择第2步和第6步中具有最小宏块率失真开销(RdcostMB)的模式作为该色度下的最优模式组合。
(8)重复第1步至第7步,遍历所有8x8色度块帧内预测模式下的最优模式组合,选择具有最小RdcostMB的模式组合作为该宏块的最佳帧内预测模式组合。
这样每一个宏块都要进行M8 x (M4 x 16 + M16)次RDO计算,其中M8、M4、M16分别表示8x8色度块、4x4亮度块、16x16亮度块的预测模式数,这也就意味着每个宏块要进行592次RDO计算。
(1)对于8x8色度块就选择一种帧内色度预测模式建立相应的帧内预测块;
(2)按遍历的方法分别计算4种Intra_16x16帧内预测模式的代价(Rdcost16x16),选择具有最小代价(Rdcost16x16)的模式作为16x16亮度块的最佳帧内预测模式,进而获得该宏块在16x16亮度块帧内预测模式下的率失真开销(RdcostMB)。
(3)对于4x4亮度块选择一种Intra_4x4帧内预测模式建立相应的帧内预测块。
(4)用拉格朗日率失真函数计算该预测模式下的代价(Rdcost4x4)。
(5)重复3,4步,遍历所有9种4x4亮度块帧内预测模式,选择具有最小代价(Rdcost4x4)的模式作为4x4亮度块的最佳帧内预测模式。
(6)对当前宏块中16个4x4亮度块重复第3步至第5步,获得每一个4x4亮度块的最佳帧内预测模式和相应的代价Rdcost4x4,进而获得该宏块在4x4亮度块帧内预测模式下的率失真开销(RdcostMB)。
(7)选择第2步和第6步中具有最小宏块率失真开销(RdcostMB)的模式作为该色度下的最优模式组合。
(8)重复第1步至第7步,遍历所有8x8色度块帧内预测模式下的最优模式组合,选择具有最小RdcostMB的模式组合作为该宏块的最佳帧内预测模式组合。
这样每一个宏块都要进行M8 x (M4 x 16 + M16)次RDO计算,其中M8、M4、M16分别表示8x8色度块、4x4亮度块、16x16亮度块的预测模式数,这也就意味着每个宏块要进行592次RDO计算。