另一篇文章:http://www.jianshu.com/p/04b5b1e4ff27

视频传输原理

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

视频里边的原始图像数据会采用 H.264编码格式进行压缩,音频采样数据会采用 AAC 编码格式进行压缩。视频内容经过编码压缩后,确实有利于存储和传输。不过当要观看播放时,相应地也需要解码过程。因此编码和解码之间,显然需要约定一种编码器和解码器都可以理解的约定。就视频图像编码和解码而言,这种约定很简单:

编码器将多张图像进行编码后生产成一段一段的 GOP ( Group of Pictures ) , 解码器在播放时则是读取一段一段的 GOP 进行解码后读取画面再渲染显示。GOP ( Group of Pictures) 是一组连续的画面,由一张 I 帧和数张 B / P 帧组成,是视频图像编码器和解码器存取的基本单位,它的排列顺序将会一直重复到影像结束。I 帧是内部编码帧(也称为关键帧),P帧是前向预测帧(前向参考帧),B 帧是双向内插帧(双向参考帧)。简单地讲,I 帧是一个完整的画面,而 P 帧和 B 帧记录的是相对于 I 帧的变化。如果没有 I 帧,P 帧和 B 帧就无法解码。

在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帧。

视频编码之I帧 、P帧、B帧-学习篇相关推荐

  1. 视频编码之I,P,B帧

    视频编码之I,P,B帧 编码主要是想办法压缩视频的大小. 使用帧间编码技术可以去除时间上的冗余信息,具体包括以下几个部分. 运动补偿:运动补偿是通过先前的局部图像来预测.补偿当前的局部图像,它是减少帧 ...

  2. 音视频 — 视频编码原理

    目录 视频编码主要分为 图像的冗余 熵编码 帧内预测 帧间预测 DCT变换和量化 编码器比较 清晰度和耗时对比 一部电影1080P,帧率25fps,时长2小时,文件大小 1920x1080x1.5x2 ...

  3. 视频编码起源历史发展及现状

    原创 2017-09-27 马思伟 声网Agora 本文根据RTC2017实时互联网大会,下一代云端音视频技术专场,马思伟老师的演讲,整理得来. http://mp.weixin.qq.com/s/n ...

  4. 转:分布式视频编码关键技术及其发展趋势

    1引言 当今的视频压缩编码标准,如ISO与ITU-T分别领导制定的视频压缩国际标准MPEG-x系列与H.26x系列,已被广泛应用于图像视频的各个领域,取得了较大的成功.因编码器承担了运动估计.变换.量 ...

  5. 【obs-studio开源项目从入门到放弃】video_thread 视频编码线程理解

    文章目录 前言 1.视频编码线程的创建时机 video_output_open函数创建视频编码线程 2.视频编码线程的工作内容 video_output_cur_frame 线程真正的工作函数 详细解 ...

  6. 论文阅读:基于感兴趣区域的360°全景视频编码

    论文名字 基于感兴趣区域的360°全景视频编码 来源 期刊   激光与光电子学进展 年份 2018 作者 吴志强,郁梅,姜浩,陈芬,蒋刚毅 核心点 提出一种基于ROI的360°全景视频编码算法 阅读日 ...

  7. H264视频编码成MP4文件

    http://blog.csdn.net/firehood_/article/details/8813587 版权声明:本文为博主原创文章,未经博主允许不得转载. 最近需要将H264视频编码成MP4格 ...

  8. 视频编码基础:I帧、P帧 和 B 帧

    I 帧.P 帧和 B 帧的概念是视频压缩领域的基础.这三种帧类型在特定情况下用于提高编解码器的压缩效率.压缩流的视频质量以及流对传输和存储错误和故障的恢复能力. 在本文中,我们将了解 I 帧.P 帧和 ...

  9. 视频编码之I帧、P帧、B帧

    一.视频传输原理      视频是利⽤⼈眼视觉暂留的原理,通过播放⼀系列的图⽚,使⼈眼产⽣运动的感觉.单纯传输视频画⾯,视频量⾮常⼤,对现有的⽹络和存储来说是不可接受的.为了能够使视频便于传输和存储, ...

  10. ISP(图像信号处理)学习笔记-帧内预测组合(视频编码入门)

    转载小柴柴博主的博文 本文链接:https://blog.csdn.net/cxy19931018/article/details/80635898 PDPC(Position Dependent I ...

最新文章

  1. php要求掌握链表结构吗,PHP 链表结构之单链表(一)
  2. map根据value值排序_凯哥带你从零学大数据系列之Java篇---第十九章:集合(Map+Collections)...
  3. 中盐总公司:盐业公司24小时配送保供应
  4. [pytorch、学习] - 3.9 多重感知机的从零开始实现
  5. 北大青鸟c语言课后答案,北大青鸟C语言教程--第一章 C语言基础.ppt
  6. HTTP 协议知识点总结(一)
  7. file_put_contents()写入数组
  8. 叫做 Nanshan即时通讯 贪婪型
  9. OpenCV--Mat类相关操作
  10. linux tomcat 改端口号,Ubuntu中Tomcat更改80端口
  11. 查询数据库最大id加1
  12. platform_driver_register()--如何match之后调用probe
  13. python爬虫框架scrapy操作步骤
  14. Unable to add window -- token android.os.BinderProxy---Android原生开发工作笔记142
  15. liunx 中mysql 远程连不上_linux中MySQL本地可以连接,远程连接不上问题
  16. phoenixframework自动化测试平台webUI代码示例
  17. angular 和 backbone 区别
  18. python写stm32_python开发stm32例程
  19. 内网穿透-把自己的电脑部署为公网可访问的服务器
  20. 【1.7】docker —— 容器

热门文章

  1. hnu云计算个人实验报告——实验一
  2. 主流的 OLAP 引擎介绍 - OLAP极简教程
  3. 《先知·论婚姻》——纪伯伦
  4. 递归递推区别分析与例题总结
  5. 日薪一斤包谷与6000万年薪
  6. C#开发------对对碰游戏
  7. SAP Marketing Cloud Contact 模型的导入配置和数据合并原理
  8. 成就系统工程师的职业生涯(1)
  9. 解系统禁用了usb服务器,解答win10系统在windows域中禁用usb设备的教程
  10. jquery获取和设置html title标签值