预测单元PU规定了编码单元的所有预测模式,一切与预测有关的信息都定义在预测单元部分,比如,帧内预测的方向,帧间预测的分割方式,运动矢量预测。以及帧间预测参考图像索引号都属于预测单元的范畴。一个2Nx2N 的编码单元所包含的预测单元划分模式如图3.9 所示。
对于一个2Nx2N的CU模式,帧内预测单元PU的可选模式有两种2Nx2N和NxN。帧间预测单元PU的可选模式有8种,4种对称模式 2Nx2N 2NxN Nx2N NxN 和4种非对称模式2NxnU,2NxnD,nLx2N,nRx2N 其中2NxnU和2NxnD 分别以上下1:3, 3:1 的比率划分,nLx2N和nRx2N分别以左右1:3, 3:1 的比率划分。skip模式是帧间预测的一种,当需要编码的运动信息只有运动参数集索引(采用运动合并技术) 编码残差信息不需要编码时,为2Nx2N skip模式。此外,表3.8还给出了PU相关的语法元素。
Skip 2Nx2N
Intra 2Nx2N NxN
Inter 2Nx2N 2NxN Nx2N NxN 2NxnU 2NxnD nLx2N nRx2N
Mvp_l0_flag[x0][y0] 表示MVP在list0中的索引,该语法元素不存在时,可以推测出其值等于0.
Mvp_l1_flag[x0][y0] 表示MVP在list1中的索引,该语法元素不存在时,可以推测出其值等于0.
Merge_flag[x0][y0] 表示当前PU的帧间预测参数是否由相邻帧间预测快推测得到,当该语法元素不存在时,若CuPredMode[x0][y0] 等于MODE SKIP 该语法元素值等于1,否则等于0.
Merge_idx[x0][y0] 表示在融合merge候选列表中的候选索引,该语法元素值不存在时,可以推测出其值等于0。
Inter_pred_idc[x0][y0] 规定当前PU使用list0, list1 还是双向预测,见表3.9 该语法元素值不存在时,可推测出其值为PRED_L0
表3.9
Inter pred idc | Name of inter pred idc |
nPbW + nPbH != 12 | nPbW + nPbH == 12 |
0 | PRED_L0 | PRED_L0 |
1 | PRED_L1 | PRED_L1 |
2 | PRED_BI | na |
Ref_idx_l0[x0][y0] 表示当前PU的list0的参考图像索引,该语法元素值不存在时,默认为0
Ref_idx_l1[x0][y0] 表示当前PU的list1 的参考图像索引,该函数元素值不存在时,默认为0。