博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
视频编码基础之I帧 、P帧、B帧
阅读量:2032 次
发布时间:2019-04-28

本文共 799 字,大约阅读时间需要 2 分钟。

视频传输原理

本文系转载自

视频是利用人眼视觉暂留的原理,通过播放一系列的图片,使人眼产生运动的感觉。单纯传输视频画面,视频量非常大,对现有的网络和存储来说是不可接受的。为了能够使视频便于传输和存储,人们发现视频有大量重复的信息,如果将重复信息在发送端去掉,在接收端恢复出来,这样就大大减少了视频数据的文件,因此有了H.264视频压缩标准。

在H.264压缩标准中I帧、P帧、B帧用于表示传输的视频画面。

1、I帧

I帧又称帧内编码帧,是一种自带全部信息的独立帧,无需参考其他图像便可独立进行解码,可以简单理解为一张静态画面。视频序列中的第一个帧始终都是I帧,因为它是关键帧。

2、P帧

P帧又称帧间预测编码帧,需要参考前面的I帧才能进行编码。表示的是当前帧画面与前一帧(前一帧可能是I帧也可能是P帧)的差别。解码时需要用之前缓存的画面叠加上本帧定义的差别,生成最终画面。与I帧相比,P帧通常占用更少的数据位,但不足是,由于P帧对前面的P和I参考帧有着复杂的依耐性,因此对传输错误非常敏感。

3、B帧

B帧又称双向预测编码帧,也就是B帧记录的是本帧与前后帧的差别。也就是说要解码B帧,不仅要取得之前的缓存画面,还要解码之后的画面,通过前后画面的与本帧数据的叠加取得最终的画面。B帧压缩率高,但是对解码性能要求较高。

总结:

I帧只需考虑本帧;P帧记录的是与前一帧的差别;B帧记录的是前一帧及后一帧的差别,能节约更多的空间,视频文件小了,但相对来说解码的时候就比较麻烦。因为在解码时,不仅要用之前缓存的画面,而且要知道下一个I或者P的画面,对于不支持B帧解码的播放器容易卡顿。

视频监控系统中预览的视频画面是实时的,对画面的流畅性要求较高。采用I帧、P帧进行视频传输可以提高网络的适应能力,且能降低解码成本所以现阶段的视频解码都只采用I帧和P帧进行传输。海康摄像机编码,I帧间隔是50,含49个P帧。

你可能感兴趣的文章
微服务架构与SOA的对比
查看>>
微服务与SOA架构
查看>>
如何通俗解释Docker是什么
查看>>
Docker
查看>>
Docker的使用场景
查看>>
Docker 在分布式和大数据框架中的应用
查看>>
javaweb学习总结——Filter高级开发
查看>>
javaweb学习总结——Filter(过滤器)学习
查看>>
javaweb学习总结——Apache的DBUtils框架学习
查看>>
javaweb学习总结——编写自己的JDBC框架
查看>>
javaweb学习总结——事务
查看>>
javaweb学习总结——获得MySQL数据库自动生成的主键
查看>>
javaweb学习总结——使用JDBC进行批处理
查看>>
JavaWeb学习总结——使用JDBC处理Oracle大数据
查看>>
javaweb学习总结——使用JDBC处理MySQL大数据
查看>>
$.ajax返回的JSON格式的数据后无法执行success的解决方法
查看>>
MyEclipse使用总结——MyEclipse去除网上复制下来的来代码带有的行号
查看>>
【zabbix教程三】——centos7 安装zabbix客户端并监控
查看>>
EasyUI学习总结(五)——EasyUI组件使用
查看>>
Servlet
查看>>