最近大致看完了帧内预测相关的技术及相关代码,做个总结。
1、初始化帧内预测参数
通过initPredIntraParams函数进行初始化帧内预测参数,代码参考如下:
https://blog.csdn.net/BigDream123/article/details/104520821
2、获取参考像素及对参考像素进行滤波
在初始化帧内预测参数后,需要获取进行帧内预测时使用的参考像素,并根据预测模式决定是否对参考像素进行滤波。initIntraPatternChType函数是获取参考像素和对参考像素滤波的入口函数,xFillReferenceSamples函数用来获取参考像素。
参考像素的滤波与帧内预测模式有关,当预测模式是0, −14, −12, −10, −6, 2, 34, 66, 72, 76, 78或者80时,会对参考像素进行滤波,对参考像素进行滤波是通过xFilterReferenceSamples函数,主要是使用[1,2,1]滤波器。代码参考:
https://blog.csdn.net/BigDream123/article/details/104520268
3、计算预测像素
根据预测模式,预测像素的计算分为以下几种:
DC模式和Planar模式:https://blog.csdn.net/BigDream123/article/details/104433037
角度预测模式技术介绍和相关代码:
https://blog.csdn.net/BigDream123/article/details/104429244和https://blog.csdn.net/BigDream123/article/details/104521096
MIP技术介绍和相关代码:
https://blog.csdn.net/BigDream123/article/details/104939645、https://blog.csdn.net/BigDream123/article/details/107019458、https://blog.csdn.net/BigDream123/article/details/107015803、https://blog.csdn.net/BigDream123/article/details/107018446
ISP技术介绍及相关代码:
https://blog.csdn.net/BigDream123/article/details/104497897和https://blog.csdn.net/BigDream123/article/details/104989998
CCLM技术介绍及相关代码:
https://blog.csdn.net/BigDream123/article/details/107792708和https://blog.csdn.net/BigDream123/article/details/107927243
4、PDPC滤波
预测结束后,为了块边界的连续性,需要对预测得到的预测块的边界进行边界滤波,PDPC技术的使用和预测模式有关
PDPC技术介绍:https://blog.csdn.net/BigDream123/article/details/104439068