其他分享
首页 > 其他分享> > HM+SCM中IBC的编码流程

HM+SCM中IBC的编码流程

作者:互联网

本文是基于HM-16.9+SCM-8.0写的
1、解析cfg中的参数;
2、初始化SPS、PPS;
3、读取YUV文件;
4、进入compressGOP函数,这个函数的功能是将视频序列分为图像组,对每组图像编码。在这个函数中,设置当前图像为长期参考图像,调用setRefPicList()函数设置参考图片列表list0和list1,然后调用compressSlice()函数编码一帧图像;
5、调用compressCtu()函数编码一个CTU,在这个函数中调用initCtu()用来初始化ctu,初始化ctu的过程中设置使用的最后2个IBC MV的值为0–m_lastIntraBCMv[2],这个变量用来标识最近的使用IBC的那个Cu
6、调用xCompressCU(),在这个函数中,IBC模式是从32x32大小的CU开始做,调用xCheckRDCostIntraBC()函数做IBC模式的预测。xCheckRDCostIntraBC()函数调用过程如下:
xCheckRDCostIntraBC()调用以下函数

predIntraBCSearch()调用以下函数

fillMvpCand()调用以下函数

xIntraBlockCopyEstimation()调用以下函数

xIntraPatternSearch()调用以下函数

7、比较RDCost,选择最佳预测模式,intra还是IBC
8、获取一个CU的重构图像
9、做完一个CTU的预测之后调用encodeCtu()进行熵编码,这里是真正的编码,IBC只编码系数
10、编码完一帧之后调用loopFilterPic()做去方块滤波,调用SAOProcess()做SAO滤波
11、输出一帧重构图像

标签:SCM,编码,调用,函数,IBC,BV,MV,HM
来源: https://blog.csdn.net/weixin_42147726/article/details/97913833