H.264/AVC reference frame and GOP
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)
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· 没有源码,如何修改代码逻辑?
· 一个奇形怪状的面试题:Bean中的CHM要不要加volatile?
· [.NET]调用本地 Deepseek 模型
· 一个费力不讨好的项目,让我损失了近一半的绩效!
· 在鹅厂做java开发是什么体验
· 百万级群聊的设计实践
· WPF到Web的无缝过渡:英雄联盟客户端的OpenSilver迁移实战
· 永远不要相信用户的输入:从 SQL 注入攻防看输入验证的重要性
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析