H.264/AVC reference frames and GOP
GOP: group of I/P/B frames, the first frame in a GOP is I frame. there is only one I frame in a GOP. if there are B frame in a GOP, the last frame is a P frame.
IDR/I frame: reference frame of P/B frame.
P frame: its reference frame is a previous I or P frame
B frame: its reference frames are a previous I or P frame and a future P frame
notices:
1. there are two types of I frame, general I frame and IDR I frame. frames in a GOP which starts with a IDR frame won't refer to frame before this IDR frame, and when decoder received a IDR frame, it will clear reference frame list, so the IDR frame can clear the error accumulation in previous GOP. while frames in a GOP which starts with a general I frame can refer to frames before this general I frame(namely previous frames of this I frame), so general I frame can't stop error accumulation in previous GOP.
2. within a GOP, error in IDR/I frames will affect decoding of other frames(P/B frames) for P/B frames referring to IDR/I frames.
3. B frame can not be reference frame.
DTS和PTS的不同:
DTS主要用于视频的解码,在解码阶段使用.PTS主要用于视频的同步和输出.在display的时候使用.在没有B frame的情况下.DTS和PTS的输出顺序是一样的.
例子:
下面给出一个GOP为15的例子,其解码的参照frame及其解码的顺序都在里面:
(picture from http://blog.csdn.net/datamining2005/article/details/72473826)