视频压缩中IPB帧概念
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帧概念相关推荐
- 关于FFMPEG 中I帧、B帧、P帧、PTS、DTS
1 基本概念 1.1 名词解释 媒体:是表示,传输,存储信息的载体,常人们见到的文字.声音.图像.图形等都是表示信息的媒体. 多媒体: 是声音.动画.文字.图像和录像等各种媒体的组合,以图文并茂,生动 ...
- 视频压缩的I帧,P帧和B帧。
/*************************************************************************************************** ...
- 【2020/12/4修订】【梳理】计算机组成与设计 第1章 计算机中的常见概念(docx)
配套教材: Computer Organization and Design: The Hardware / Software Interface (5th Edition) 第一章 计算机中的常见概 ...
- 视频压缩:I帧、P帧、B帧
/*************************************************************************************************** ...
- H.264中IDR帧和I帧区别
IDR(Instantaneous Decoding Refresh)--即时解码刷新. I和IDR帧都是使用帧内预测的.它们都是同一个东西而已,在编码和解码中为了方便,要首个I帧和其他I ...
- 让蔡徐坤来教你实现游戏中的帧动画(中)
在上一篇介绍帧动画的文章中,我们已经介绍了如何给一个节点添加帧动画,忘记的小伙伴可以再去看看:让蔡徐坤来教你实现游戏中的帧动画(上),那么今天我们来给大家讲解一下如何通过脚本控制帧动画. 由于官网对通 ...
- 函数式编程中的重要概念
函数式编程中的重要概念 函数式编程范式的意义 函数类型与高阶函数 部分函数 柯里化 闭包 递归 记忆化 原文地址 函数式编程范式的意义 在众多的编程范式中,大多数开发人员比较熟悉的是面向对象编程范式. ...
- 查看视频的IPB帧,IPB帧编码顺序,视频的第一帧图片
> 如何查看视频的IPB帧 Android, 如何获取视频的每一帧的信息 视频 = 图片.图像(摄像头) + 声音(麦克风) : 谷歌官方给我们的提供的api接口类:MediaMetadataR ...
- 2021年大数据ELK(五):Elasticsearch中的核心概念
全网最详细的大数据ELK文章系列,强烈建议收藏加关注! 新文章都已经列出历史文章目录,帮助大家回顾前面的知识重点. 目录 系列历史文章 Elasticsearch中的核心概念 一.索引 index 二 ...
- 《.NET应用架构设计:原则、模式与实践》新书博客--试读-1.3 架构设计中的重要概念...
1.3 架构设计中的重要概念 <?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office&quo ...
最新文章
- 使用WPA Supplicant在Ubuntu 18.04/19.04上从终端连接到Wi-Fi的方法
- 出大问题!webpack 多入口html模板在后端
- oracle 查看白名单,oracle配置访问白名单教程
- ubuntu shuangxitong
- 为什么说 Transformer 就是图神经网络?
- 循环神经网络(RNN)详解
- Laravel多用户博客系统
- 神经网络的原理和应用,神经网络理论及应用
- rsync 同步文件
- 2021年深度学习哪些方向比较新颖,处于上升期或者朝阳阶段,比较有研究潜力?...
- 解决latex伪代码标题序号问题
- java项目 无法重命名_项目重命名:出现的问题
- ES6之什么是箭头函数?
- nginx 配置之 proxy_pass参数详解
- php下雨效果源码,ps下雨效果制作步骤
- SSM+基于Vue框架的在线投票系统的设计与实现 毕业设计-附源码221604
- 深夜来一发,拿走不谢
- 2014 acm亚洲区域赛(北京)总结
- C# 学习笔记 1.初识
- 人机博弈 围棋程序GNU GO 所有版本源码及使用方法
热门文章
- Dataframe基础操作巩固——美国大选献金项目
- pyqt 事件更新图片显示_暗黑战神3D网游ARPG实战案例(Unity 2017.3)更新
- 2022年西式面点师(初级)考试题库及模拟考试
- Windows 缓冲区溢出与数据执行保护DEP
- 中山大学2021计算机考研复试线,2021中山大学研究生复试分数线
- 俄黑客入侵100多万部安卓手机 盗取500多万卢布
- 基于Python制作实现的推箱子小游戏
- unable to resolve host address
- Doom3 couldn't load default.cfg
- 创可贴的 ROS PX4 自主飞行无人机 学习笔记(1)