IDR(Instantaneous Decoding Refresh)--即时解码刷新。

I帧:帧内编码帧是一种自带全部信息的独立帧,无需参考其它图像便可独立进行解码,视频序列中的第一个帧始终都是I帧。

I和IDR帧都是使用帧内预测的。它们都是同一个东西而已,在编码和解码中为了方便,要首个I帧和其他I帧区别开,所以才把第一个首个I帧叫IDR,这样就方便控制编码和解码流程。 IDR帧的作用是立刻刷新,使错误不致传播,从IDR帧开始,重新算一个新的序列开始编码。而I帧不具有随机访问的能力,这个功能是由IDR承担。 IDR会导致DPB(DecodedPictureBuffer 参考帧列表——这是关键所在)清空,而I不会。IDR图像一定是I图像,但I图像不一定是IDR图像。一个序列中可以有很多的I图像,I图像之后的图像可以引用I图像之间的图像做运动参考。一个序列中可以有很多的I图像,I图像之后的图象可以引用I图像之间的图像做运动参考。

对于IDR帧来说,在IDR帧之后的所有帧都不能引用任何IDR帧之前的帧的内容,与此相反,对于普通的I-帧来说,位于其之后的B-和P-帧可以引用位于普通I-帧之前的I-帧。从随机存取的视频流中,播放器永远可以从一个IDR帧播放,因为在它之后没有任何帧引用之前的帧。但是,不能在一个没有IDR帧的视频中从任意点开始播放,因为后面的帧总是会引用前面的帧 。

收到 IDR 帧时,解码器另外需要做的工作就是:把所有的 PPS 和 SPS 参数进行更新。

对IDR帧的处理(与I帧的处理相同):(1) 进行帧内预测,决定所采用的帧内预测模式。(2) 像素值减去预测值,得到残差。(3) 对残差进行变换和量化。(4) 变长编码和算术编码。(5) 重构图像并滤波,得到的图像作为其它帧的参考帧。

多参考帧情况下,  举个例子 :有如下帧序列: IPPPP I P PPP ……。按照 3 个参考帧编码。

因为“按照 3 个参考帧编码”,所以参考帧队列长度为 3 。

遇到绿色的 I 时,并不清空参考帧队列,把这个 I 帧加入参考帧队列(当然 I 编码时不用参考帧。)。再检测到红色的 P 帧时,用到的就是 PPI 三帧做参考了。

P帧:前向预测编码帧

在针对连续动态图像编码时,将连续若干幅图像分成P,B,I三种类型,P帧由在它前面的P帧或者I帧预测而来,它比较与它前面的P帧或者I帧之间的相同信息或数据,也即考虑运动的特性进行帧间压缩。P帧法是根据本帧与相邻的前一帧(I帧或P帧)的不同点来压缩本帧数据。采取P帧和I帧联合压缩的方法可达到更高的压缩且无明显的压缩痕迹。

P帧的预测与重构:P帧是以I帧为参考帧,在I帧中找出P帧“某点”预测值和运动矢量,取预测差值和运动矢量一起传送。在接收端根据运动矢量从I帧中找出P帧“某点”的预测值并与差值相加以得到P帧某点样值,从而可得到完整的P帧。

有的视频序列比较简单,就没有B帧,

B帧:双向预测内插编码帧

B帧的预测与重构

B帧法是双向预测的帧间压缩算法。当把一帧压缩成B帧时,它根据相邻的前一帧、本帧以及后一帧数据的不同点来压缩本帧,也即仅记录本帧与前后帧的差值。只有采用B帧压缩才能达到200:1的高压缩。

B帧是以前面的I或P帧和后面的P帧为参考帧,找出B帧“某点”的预测值和两个运动矢量,并取预测差值和运动矢量传送。接收端根据运动矢量在两个参考帧中。

I帧 B帧 p帧 IDR帧的区别相关推荐

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

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

  2. I帧和IDR帧的区别

    文章一: 转自:http://blog.csdn.net/SkyGray/article/details/6223358 IDR 帧属于 I 帧.解码器收到 IDR frame  时,将所有的参考帧队 ...

  3. I帧、B帧、P帧以及IDR帧之间的关系

    IDR(Instantaneous Decoding Refresh)--即时解码刷新. I帧:帧内编码帧是一种自带全部信息的独立帧,无需参考其它图像便可独立进行解码,视频序列中的第一个帧始终都是I帧 ...

  4. 图像和流媒体 -- I 帧,B帧,P帧,IDR帧的区别

    参看:什么是I帧,P帧,B帧 参看:H264编码原理以及I帧B帧P帧 一.H246简介 H264是新一代的编码标准,以高压缩高质量和支持多种网络的流媒体传输著称,在编码方面,我理解的他的理论依据是:参 ...

  5. (转)I 帧和 IDR 帧的区别

    I 帧和 IDR 帧的区别:http://blog.csdn.net/skygray/article/details/6223358 IDR 帧属于 I 帧.解码器收到 IDR frame  时,将所 ...

  6. I 帧和 IDR 帧的区别

    I 帧和 IDR 帧的区别: IDR 帧属于 I 帧.解码器收到 IDR frame  时,将所有的参考帧队列丢弃 (用x264_reference_reset 函数实现--在 encoder.c 文 ...

  7. I帧和IDR帧区别(转载)

    I 帧和 IDR 帧的区别: IDR 帧属于 I 帧.解码器收到 IDR frame  时,将所有的参考帧队列丢弃 (用 x264_reference_reset 函数实现--在 encoder.c  ...

  8. 视频知识点(14)- 来,咱们聊一聊 I 帧和 IDR 帧的区别

    CSDN话题挑战赛第1期活动详情地址:https://marketing.csdn.net/p/bb5081d88a77db8d6ef45bb7b6ef3d7f 技术专栏 >><音视 ...

  9. idr帧 i帧 p帧_GOP、IDR帧、I帧周期的关系

    关于 GOP 中 IDR 帧的说明: 1 . 在 H.264 中一个图像组的起始帧一定是 IDR 帧, 因此在 H.264 中在处理一个 GOP 之前 会把参考图像集清空,因此一个 GOP 中的帧一定 ...

最新文章

  1. Spark组件和术语定义
  2. Delphi APP 開發入門(五)GPS 定位功能
  3. iOS很重要的 block回调
  4. 学习程序开发的方法,仅供参考吧
  5. Spring Boot中使用模板引擎引用资源
  6. MFC开发IM-MFC任意位置实现窗口拖动
  7. 人脸对齐(十六)--DenseFA
  8. [2019杭电多校第五场][hdu6625]three arrays(01字典树)
  9. Vue+element搭建后台管理系统-二、安装插件
  10. iOS 应用内直接评分问题
  11. 10大人生感悟助你走向成功之路
  12. HDU4556_欧拉函数求解法拉数列
  13. 安兔兔:2018年8月iOS设备性能排行榜
  14. 国内影响已扩散,Wannacry蠕虫勒索软件及修复方案
  15. 买天猫网店转让成为电商创业新趋势
  16. Navicat 全部产品破解方法(MySQL/PostgreSQL等所有navicat的产品均可破解)
  17. Ubuntu息屏后唤醒的花屏问题
  18. 宽带服务器无响应678,宽带连接错误678解决方法
  19. Java-对象头详解
  20. Golang + Gin + cytocsape.js + neo4j

热门文章

  1. 拖放本地图片到网页中
  2. Java 8 Update 251 (8u251)
  3. VOL.bat 内容
  4. HDU - 4540 威威猫系列故事——打地鼠
  5. 关于mstar TV芯片苹果设备Airplay投屏播放画面竖屏窗体旋转、窗体显示不正常的解决方案
  6. QT学习之TableWidget 表格控件使用
  7. 合肥内推 | 商汤智能车舱研发团队招聘计算机视觉算法实习生
  8. DL4J实战之三:经典卷积实例(LeNet-5)
  9. java模板引擎 jade_Jade 模板引擎使用
  10. mysql批量修改表字段信息,把mysql中列名大写字母列转化为小写