Recently, I have roughly read the technologies and related codes related to intra-frame prediction, and make a summary.
1. Initialize intra prediction parameters
The intra prediction parameters are initialized by the initPredIntraParams function. The code reference is as follows:
https://blog.csdn.net/BigDream123/article/details/104520821
2. Obtain and filter reference pixels
After initializing the intra-frame prediction parameters, it is necessary to obtain the reference pixels used in the intra-frame prediction, and decide whether to filter the reference pixels according to the prediction mode. The initIntraPatternChType function is the entry function to obtain and filter the reference pixels, and the xFillReferenceSamples function is used to obtain the reference pixels.
The filtering of reference pixels is related to the intra prediction mode. When the prediction mode is 0, −14, −12, −10, −6, 2, 34, 66, 72, 76, 78 or 80, the reference pixel is filtered , The reference pixel is filtered through the xFilterReferenceSamples function, mainly using [1,2,1] filters. Code reference:
https://blog.csdn.net/BigDream123/article/details/104520268
3. Calculate predicted pixels
According to the prediction mode, the calculation of predicted pixels is divided into the following types:
DC mode and Planar mode: https://blog.csdn.net/BigDream123/article/details/104433037
Angle prediction mode technology introduction and related code:
https://blog.csdn.net/BigDream123/article/details/104429244 and https://blog.csdn.net/BigDream123/article/details/104521096
MIP technology introduction and related codes:
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 technology introduction and related codes:
https://blog.csdn.net/BigDream123/article/details/104497897 and https://blog.csdn.net/BigDream123/article/details/104989998
CCLM technology introduction and related code:
https://blog.csdn.net/BigDream123/article/details/107792708 and https://blog.csdn.net/BigDream123/article/details/107927243
4. PDPC filtering
After the prediction is over, for the continuity of the block boundary, it is necessary to perform boundary filtering on the boundary of the predicted prediction block obtained by prediction. The use of PDPC technology is related to the prediction mode
PDPC technology introduction: https://blog.csdn.net/BigDream123/article/details/104439068