anchor picture: A coded picture in which all slices may reference only slices within the same access unit, i.e., inter-view prediction may be used, but no inter prediction is used, and all following coded pictures in output order do not use inter prediction from any picture prior to the coded picture in decoding order. The value of anchor_pic_flag is equal to 1 for all the prefix NAL units (when present) and all the slice extension NAL units that are contained in an anchor picture.
T.Wiegand的关于MVC的文章中提到的anchor picture有以下的描述:
Anchor pictures are similar to IDR pictures in that they do not use temporal prediction for the encoding of any view on which a given view depends, although they do allow inter-view prediction from other views within the same access unit.
Moreover, it is prohibited for any picture that follows the anchor picture in both bitstream order and display order to use any picture that precedes the anchor picture in bitstream order as a reference for inter-picture prediction, and for any picture that precedes the anchor picture in decoding order to follow it in display order.
With an anchor picture, it is permissible to use pictures that precede the anchor picture in bitstream order as reference pictures for inter-picture prediction of pictures that follow after the anchor picture in bitstream order, but only if the pictures that use this type of referencing precede the anchor picture in display order.
从H264的Spec上,我们可知:
anchor picture是一个类似于IDR的picture类型,能够进行inter-view prediction,不能进行inter-picture prediction,按解码顺序在AP(anchor picture)之后的picture,不可以参考AP之前的picture。在此,我们可以认为output order和decoding order是一个order,只是对于encoder和decoder的叫法不同。
但是T.Wiegand的三段话意义就颇为玄妙,按照字面翻译:
1。第一句话,跟spec一致。
2。无论以解码顺序还是显示顺序排在AP后面的帧,都不能参考按照解码顺序排在AP前面的帧;以及那些按照解码顺序排在AP前面,按照显示顺序排在AP后面的帧。
3。允许按照解码顺序排在AP后面的帧,参考按照解码顺序排在前面的帧,但是仅仅当这个帧按照显示顺序排在AP之后。
也许是因为我的英语还不过关,总感觉2和3有些矛盾,但是又不矛盾。
例如:
解码顺序:I P B B
显示顺序:I B B P
那么,假定第一个B为AP,那么B1到第能不能参考I和P呢,P又能不能参考I呢?
是不是可以这样理解:第二个B不能参考I和P,而P能参考I,这个结论不知道是不是正确,请告人们指点一二。