在x264中,由于单一宏块预测方向与264规范定义实际上是一直的,即预测方向只有:左(left)、上(top)、左上(left-top)、右上(right-top)。
没有其他的另外四个方向,估计可能是zig-zag的数据排列有关,或只是由于对称关系,不需要做重复预测。
有上述4中预测方向,x264中定义了几种邻居关系(下面拿I帧4×4的宏块距离说明):
- 垂直方向,即I_PRED_4x4_V、I_PRED_4x4_DC_TOP,实际上是向上方向预测(top)
- 水平方向,即I_PRED_4x4_H、I_PRED_4x4_HU、I_PRED_4x4_DC_LEFT,实际上是向左方向预测(left)
- 左边和向上方向,即I_PRED_4x4_DC
- 向上旋转到右上方向,即I_PRED_4x4_DDL、I_PRED_4x4_VL
- 左边旋转到向上方向,即I_PRED_4x4_DDR、I_PRED_4x4_VR、I_PRED_4x4_HD
- 左边旋转到向上方向,即I_PRED_4x4_VL
- I_PRED_4x4_DC_128代表自身?