I frame:帧内编码帧 又称intra picture,I 帧通常是每个 GOP(MPEG 所使用的一种视频压缩技术)的第一个帧,经过适度地压缩,做为随机访问的参考点,可以当成图象。I帧可以看成是一个图像经过压缩后的产物;

P frame: 前向预测编码帧 又称predictive-frame,通过充分将低于图像序列中前面已编码帧的时间冗余信息来压缩传输数据量的编码图像,也叫预测帧;

B frame: 双向预测内插编码帧 又称bi-directional interpolated prediction frame,既考虑与源图像序列前面已编码帧,也顾及源图像序列后面已编码帧之间的时间冗余信息来压缩传输数据量的编码图像,也叫双向预测帧;

(在没有B帧存在的情况下DTS的顺序和PTS的顺序应该是一样的。)

PTS:Presentation Time Stamp。PTS主要用于度量解码后的视频帧什么时候被显示出来;

DTS:Decode Time Stamp。DTS主要是标识读入内存中的bit流在什么时候开始送入解码器中进行解码;

I/P/B帧的不同:

  I frame:自身可以通过视频解压算法解压成一张单独的完整的图片;

  P frame:需要参考其前面的一个I frame 或者B frame来生成一张完整的图片;

  B frame:则要参考其前一个I或者P帧及其后面的一个P帧来生成一张完整的图片;

  两个I frame之间形成一个GOP,在x264中同时可以通过参数来设定bf的大小,即:I 和p或者两个P之间B的数量;

  通过上述基本可以说明如果有B frame 存在的情况下一个GOP的最后一个frame一定是P;

 DTS和PTS的不同:

  DTS主要用于视频的解码,在解码阶段使用.PTS主要用于视频的同步和输出.在display的时候使用.在没有B frame的情况下.DTS和PTS的输出顺序是一样的.

例子:

下面给出一个GOP为15的例子,其解码的参照frame及其解码的顺序都在里面:

如上图:I frame 的解码不依赖于任何的其它的帧.而p frame的解码则依赖于其前面的I frame或者P frame.B frame的解码则依赖于其前的最近的一个I frame或者P frame 及其后的最近的一个P frame.

最新文章

  1. T-SQL:毕业生出门需知系列(目录)
  2. sokect编程进阶
  3. redis-cluster 迁移过程错误记录
  4. Action处理请求参数
  5. java new synchronized
  6. scala言语基础学习
  7. 刷机nexus4
  8. 基于page的简单页面推送技术
  9. C#-Mdi多文档窗体及其子窗体的排列 ---ShinePans
  10. matlab 相关性分析
  11. mysql has gone away
  12. centos 6安装opencv
  13. Servlet 学习总结
  14. [物理学与PDEs]第5章第3节 守恒定律, 应力张量
  15. mime类型的解析与应用
  16. 关于jQuery实现CheckBox全选只能生效一次的问题
  17. C/C++生成静态库动态库及语言交互
  18. cf Round#273 Div.2
  19. Invalid Host header 的解决方案
  20. ASP.NET MVC同时支持web与webapi模式

热门文章

  1. C#设计模式(5)-建造者模式
  2. Java缓存类的实际应用场景
  3. 自制ACL+DHCP实验(初版)
  4. 团队作业4---第一次项目冲刺(ALpha)版本 第五天
  5. 团队作业4——第一次项目冲刺(Alpha版本)第一天 and 第二天
  6. 201521123040《Java程序设计》第8周学习总结
  7. 201521123001《Java程序设计》第8周学习总结
  8. 201521123109《java程序设计》第三周学习总结
  9. 201521123071 《JAVA程序设计》第九周学习总结
  10. 201521123023《Java程序设计》第11周学习总结