这里主要是结合HEVC的解码端I帧进行讲解的,其中P,B帧基本上没有太大的出入,主要是PU还存在不规则的情况对P帧还没有把握
之后清楚解析后,再进行补充
在之前的博文中提到了编码树结构的相关概念,这里主要结合代码进行进一步的讲解
在帧内模式中:
35中预测模式是在PU的基础上进行定义的,但是在具体的帧内预测过程中是以TU为单位的,标准规定PU可以四叉树的形式划分为TU,并且同一个PU内的TU共享一种预测模式
在实际的预测中,每一个TU自己预测自己的,自己参考自己周围的像素点
所以说:PU只是定义预测的方式,而真正的和预测像素和重构的过程都是通过TU进行处理的
下面是熵解码读出一些数据的记录线索:
pCu 代表的是一个CTU对应的结构体
uiAbsPartIdx 表示当前CU在CTU中的位置(以配置文档中最小TU为单位)
最后一个参数表示当前CU或者PU中有多少个TU
//<从CTU中递归进入CU的过程中记录深度信息
memset( pCu->pPuhDepth + uiAbsPartIdx, uiDepth+splitFlag, uiCurNumParts );
//<记录当前CU预测部分PU是N*N,or2N*2N,同时记录当前CU的width,height
memset(pCu->pPePartSize+uiAbsPa