在H.265/HEVC中,35种预测模式是在PU的基础上定义的,而具体帧内预测过程的实现则是以TU为单位的。编撰规定PU可以以四叉树的形式划分TU,且一个PU内所有TU共享同一种预测模式的形式划分TU,且一个PU内的所有TU共享同一种预测模式。H.265/HEVC帧内预测可分为以下3个步骤:
**
1.判断当前TU相邻参考像素是否可用并做相应的处理
2.对参考像素进行滤波
3.根据滤波后的参考像素计算当前TU的预测像素值
**
1.相邻参考像素的获取
如图,当前的TU大小为NxN,其参考像素按区域可分为5部分:左下(A)、左侧(B)、左上(C)、上方(D)和右上(E),一共4N+1个点。若当前TU位于图像边界,或Slice、Tile的边界(H.265/HEVC规定在帧内编码中,相邻Slice或Tile不能相互参考),则相邻参考像素可能会不存在或不可用。另外,在某些情形下A或E所在的块可能尚未进行编码,此时这些参考像素也是不可用的。
相邻参考像素位置
当参考像素不存在或不可用时,H.265/HEVC标准会使用最邻近的像素进行填充。例如,若区域A的参考像素不存在,则区域A所有参考像素都用区域B最下方的像素进行填充;若区域E的参考像素不存在,则区域E所有参考像素都用D最右侧的像素进行填充。需要说明的是,若所有参考像素都不可用,则参考像素都用固定值填充,该固定值大小为
R = 1 << (BitDepth -1)
源码解析:
fillReferenceSamples这个函数,