命令行输出:
Frame 0 ( LId 0, TL 0, QL 0, AVC-I, BId -1, AP 0, QP 24 )
Frame 0 ( LId 1, TL 0, QL 0, SVC-I, BId 0, AP 1, QP 26 )
来自代码部分:
printf(" %s %4d ( LId%2d, TL%2d, QL%2d, %s-%c, BId%2d, AP%2d, QP%3d )/n",
ePicType == FRAME ? "Frame" : ePicType == TOP_FIELD ? "TopFd" : "BotFd",
rcSliceHeader.getPoc (),
rcSliceHeader.getDependencyId (),
rcSliceHeader.getTemporalId (),
rcSliceHeader.getQualityId (),
rcSliceHeader.isH264AVCCompatible () ? "AVC" : "SVC",
rcSliceHeader.getSliceType () == I_SLICE ? 'I' :
rcSliceHeader.getSliceType () == P_SLICE ? 'P' : 'B',
rcSliceHeader.getRefLayerDQId (),
rcSliceHeader.getAdaptiveBaseModeFlag () ? 1 : 0,
rcSliceHeader.getSliceQp () );
此处解释一下BId和AP;
BId表示参考层的DQId(关键其值的意义见标准),对于上面的例子,没有质量分层,只有两层的空间分层。所以基本层没有参考层,所以BId为-1,增强层的值为0,表示其参考层的DId和QId都是0。
AP表示该层的宏块是否采用自适应的层间预测,具体说明可见SoftwareManual.doc中adaptive_base_mode_flag。