I帧 B帧 p帧 IDR帧的区别
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帧的区别相关推荐
- H.264中IDR帧和I帧区别
IDR(Instantaneous Decoding Refresh)--即时解码刷新. I和IDR帧都是使用帧内预测的.它们都是同一个东西而已,在编码和解码中为了方便,要首个I帧和其他I ...
- I帧和IDR帧的区别
文章一: 转自:http://blog.csdn.net/SkyGray/article/details/6223358 IDR 帧属于 I 帧.解码器收到 IDR frame 时,将所有的参考帧队 ...
- I帧、B帧、P帧以及IDR帧之间的关系
IDR(Instantaneous Decoding Refresh)--即时解码刷新. I帧:帧内编码帧是一种自带全部信息的独立帧,无需参考其它图像便可独立进行解码,视频序列中的第一个帧始终都是I帧 ...
- 图像和流媒体 -- I 帧,B帧,P帧,IDR帧的区别
参看:什么是I帧,P帧,B帧 参看:H264编码原理以及I帧B帧P帧 一.H246简介 H264是新一代的编码标准,以高压缩高质量和支持多种网络的流媒体传输著称,在编码方面,我理解的他的理论依据是:参 ...
- (转)I 帧和 IDR 帧的区别
I 帧和 IDR 帧的区别:http://blog.csdn.net/skygray/article/details/6223358 IDR 帧属于 I 帧.解码器收到 IDR frame 时,将所 ...
- I 帧和 IDR 帧的区别
I 帧和 IDR 帧的区别: IDR 帧属于 I 帧.解码器收到 IDR frame 时,将所有的参考帧队列丢弃 (用x264_reference_reset 函数实现--在 encoder.c 文 ...
- I帧和IDR帧区别(转载)
I 帧和 IDR 帧的区别: IDR 帧属于 I 帧.解码器收到 IDR frame 时,将所有的参考帧队列丢弃 (用 x264_reference_reset 函数实现--在 encoder.c ...
- 视频知识点(14)- 来,咱们聊一聊 I 帧和 IDR 帧的区别
CSDN话题挑战赛第1期活动详情地址:https://marketing.csdn.net/p/bb5081d88a77db8d6ef45bb7b6ef3d7f 技术专栏 >><音视 ...
- idr帧 i帧 p帧_GOP、IDR帧、I帧周期的关系
关于 GOP 中 IDR 帧的说明: 1 . 在 H.264 中一个图像组的起始帧一定是 IDR 帧, 因此在 H.264 中在处理一个 GOP 之前 会把参考图像集清空,因此一个 GOP 中的帧一定 ...
最新文章
- Spark组件和术语定义
- Delphi APP 開發入門(五)GPS 定位功能
- iOS很重要的 block回调
- 学习程序开发的方法,仅供参考吧
- Spring Boot中使用模板引擎引用资源
- MFC开发IM-MFC任意位置实现窗口拖动
- 人脸对齐(十六)--DenseFA
- [2019杭电多校第五场][hdu6625]three arrays(01字典树)
- Vue+element搭建后台管理系统-二、安装插件
- iOS 应用内直接评分问题
- 10大人生感悟助你走向成功之路
- HDU4556_欧拉函数求解法拉数列
- 安兔兔:2018年8月iOS设备性能排行榜
- 国内影响已扩散,Wannacry蠕虫勒索软件及修复方案
- 买天猫网店转让成为电商创业新趋势
- Navicat 全部产品破解方法(MySQL/PostgreSQL等所有navicat的产品均可破解)
- Ubuntu息屏后唤醒的花屏问题
- 宽带服务器无响应678,宽带连接错误678解决方法
- Java-对象头详解
- Golang + Gin + cytocsape.js + neo4j