http://blog.sina.com.cn/s/blog_56ae1d580102v0dt.html

视频压缩中,每帧代表一幅静止的图像。而在实际压缩时,会采取各种算法减少数据的容量,其中IPB就是最常见的。

I帧表示关键帧,你可以理解为这一帧画面的完整保留;解码时只需要本帧数据就可以完成(因为包含完整画面)

P帧表示的是这一帧跟之前的一个关键帧(或P帧)的差别,解码时需要用之前缓存的画面叠加上本帧定义的差别,生成最终画面。(也就是差别帧,P帧没有完整画面数据,只有与前一帧的画面差别的数据)

B帧是双向差别帧,也就是B帧记录的是本帧与前后帧的差别(具体比较复杂,有4种情况,但我这样说简单些,有兴趣可以看看我上面提供的资料),换言之,要解码B帧,不仅要取得之前的缓存画面,还要解码之后的画面,通过前后画面的与本帧数据的叠加取得最终的画面。B帧压缩率高,但是解码时CPU会比较累~。

在配置srs时会遇到一个概念GOP

简单的理解GOP就是两个I帧之间的间隔

srs服务器上,可以设定是否在客户请求时直接将缓存数据发送给客户,还是等到有I帧的时候在发送。

I帧是完整的视频帧,换句话说,客户端只有在获得I帧后才会有完整的视频。如果直接发送,不等I帧,客户端得到的画面会残缺,但是延迟较低。如果等I帧,客户端缓冲时间较长,得到画面会完整,但是延迟至少是一个gop。

在视频编码序列中,主要有三种编码帧:I帧、P帧、B帧,如下图所示。

  ● I帧即Intra-coded picture(帧内编码图像帧),不参考其他图像帧,只利用本帧的信息进行编码
  ● P帧即Predictive-coded Picture(预测编码图像帧),利用之前的I帧或P帧,采用运动预测的方式进行帧间预测编码
  ● B帧即Bidirectionally predicted picture(双向预测编码图像帧),提供最高的压缩比,它既需要之前的图
像帧(I帧或P帧),也需要后来的图像帧(P帧),采用运动预测的方式进行帧间双向预测编码

  在视频编码序列中,GOP即Group of picture(图像组),指两个I帧之间的距离,Reference(参考周期)指两个P帧之间的距离(如下图3.1)。一个I帧所占用的字节数大于一个P帧,一个P帧所占用的字节数大于一个B帧(如下图3.1所示)。

  I、P、B帧示意图

  所以在码率不变的前提下,GOP值越大,P、B帧的数量会越多,平均每个I、P、B帧所占用的字节数就越多,也就更容易获取较好的图像质量;Reference越大,B帧的数量越多,同理也更容易获得较好的图像质量。

  需要说明的是,通过提高GOP值来提高图像质量是有限度的,在遇到场景切换的情况时,H.264编码器会自动强制插入一个I帧,此时实际的GOP值被缩短了。另一方面,在一个GOP中,P、B帧是由I帧预测得到的,当I帧的图像质量比较差时,会影响到一个GOP中后续P、B帧的图像质量,直到下一个GOP开始才有可能得以恢复,所以GOP值也不宜设置过大。

  同时,由于P、B帧的复杂度大于I帧,所以过多的P、B帧会影响编码效率,使编码效率降低。另外,过长的GOP还会影响Seek操作的响应速度,由于P、B帧是由前面的I或P帧预测得到的,所以Seek操作需要直接定位,解码某一个P或B帧时,需要先解码得到本GOP内的I帧及之前的N个预测帧才可以,GOP值越长,需要解码的预测帧就越多,seek响应的时间也越长。

http://blog.csdn.net/voipmaker/article/details/8451577

视频压缩中IPB帧概念相关推荐

  1. 关于FFMPEG 中I帧、B帧、P帧、PTS、DTS

    1 基本概念 1.1 名词解释 媒体:是表示,传输,存储信息的载体,常人们见到的文字.声音.图像.图形等都是表示信息的媒体. 多媒体: 是声音.动画.文字.图像和录像等各种媒体的组合,以图文并茂,生动 ...

  2. 视频压缩的I帧,P帧和B帧。

    /*************************************************************************************************** ...

  3. 【2020/12/4修订】【梳理】计算机组成与设计 第1章 计算机中的常见概念(docx)

    配套教材: Computer Organization and Design: The Hardware / Software Interface (5th Edition) 第一章 计算机中的常见概 ...

  4. 视频压缩:I帧、P帧、B帧

    /*************************************************************************************************** ...

  5. H.264中IDR帧和I帧区别

    IDR(Instantaneous Decoding Refresh)--即时解码刷新.       I和IDR帧都是使用帧内预测的.它们都是同一个东西而已,在编码和解码中为了方便,要首个I帧和其他I ...

  6. 让蔡徐坤来教你实现游戏中的帧动画(中)

    在上一篇介绍帧动画的文章中,我们已经介绍了如何给一个节点添加帧动画,忘记的小伙伴可以再去看看:让蔡徐坤来教你实现游戏中的帧动画(上),那么今天我们来给大家讲解一下如何通过脚本控制帧动画. 由于官网对通 ...

  7. 函数式编程中的重要概念

    函数式编程中的重要概念 函数式编程范式的意义 函数类型与高阶函数 部分函数 柯里化 闭包 递归 记忆化 原文地址 函数式编程范式的意义 在众多的编程范式中,大多数开发人员比较熟悉的是面向对象编程范式. ...

  8. 查看视频的IPB帧,IPB帧编码顺序,视频的第一帧图片

    > 如何查看视频的IPB帧 Android, 如何获取视频的每一帧的信息 视频 = 图片.图像(摄像头) + 声音(麦克风) : 谷歌官方给我们的提供的api接口类:MediaMetadataR ...

  9. 2021年大数据ELK(五):Elasticsearch中的核心概念

    全网最详细的大数据ELK文章系列,强烈建议收藏加关注! 新文章都已经列出历史文章目录,帮助大家回顾前面的知识重点. 目录 系列历史文章 Elasticsearch中的核心概念 一.索引 index 二 ...

  10. 《.NET应用架构设计:原则、模式与实践》新书博客--试读-1.3 架构设计中的重要概念...

    1.3  架构设计中的重要概念 <?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office&quo ...

最新文章

  1. 使用WPA Supplicant在Ubuntu 18.04/19.04上从终端连接到Wi-Fi的方法
  2. 出大问题!webpack 多入口html模板在后端
  3. oracle 查看白名单,oracle配置访问白名单教程
  4. ubuntu shuangxitong
  5. 为什么说 Transformer 就是图神经网络?
  6. 循环神经网络(RNN)详解
  7. Laravel多用户博客系统
  8. 神经网络的原理和应用,神经网络理论及应用
  9. rsync 同步文件
  10. 2021年深度学习哪些方向比较新颖,处于上升期或者朝阳阶段,比较有研究潜力?...
  11. 解决latex伪代码标题序号问题
  12. java项目 无法重命名_项目重命名:出现的问题
  13. ES6之什么是箭头函数?
  14. nginx 配置之 proxy_pass参数详解
  15. php下雨效果源码,ps下雨效果制作步骤
  16. SSM+基于Vue框架的在线投票系统的设计与实现 毕业设计-附源码221604
  17. 深夜来一发,拿走不谢
  18. 2014 acm亚洲区域赛(北京)总结
  19. C# 学习笔记 1.初识
  20. 人机博弈 围棋程序GNU GO 所有版本源码及使用方法

热门文章

  1. Dataframe基础操作巩固——美国大选献金项目
  2. pyqt 事件更新图片显示_暗黑战神3D网游ARPG实战案例(Unity 2017.3)更新
  3. 2022年西式面点师(初级)考试题库及模拟考试
  4. Windows 缓冲区溢出与数据执行保护DEP
  5. 中山大学2021计算机考研复试线,2021中山大学研究生复试分数线
  6. 俄黑客入侵100多万部安卓手机 盗取500多万卢布
  7. 基于Python制作实现的推箱子小游戏
  8. unable to resolve host address
  9. Doom3 couldn't load default.cfg
  10. 创可贴的 ROS PX4 自主飞行无人机 学习笔记(1)