`
蒙面考拉
  • 浏览: 154669 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

流媒体中的I帧、B帧、P帧[转]

阅读更多

基本概念:

I frame :帧内编码帧 又称intra picture,I 帧通常是每个 GOP(MPEG 所使用的一种视频压缩技术)的第一个帧,经过适度地压缩,做为随机访问的参考点,可以当成图象。I帧可以看成是一个图像经过压缩后的产物。

P frame: 前向预测编码帧 又称predictive-frame,通过充分将低于图像序列中前面已编码帧的时间冗余信息来压缩传输数据量的编码图像,也叫预测帧;

B frame: 双向预测内插编码帧 又称bi-directional interpolated prediction frame,既考虑与源图像序列前面已编码帧,也顾及源图像序列后面已编码帧之间的时间冗余信息来压缩传输数据量的编码图像,也叫双向预测帧;

PTS:Presentation Time Stamp。PTS主要用于度量解码后的视频帧什么时候被显示出来

DTS:Decode Time Stamp。DTS主要是标识读入内存中的bit流在什么时候开始送入解码器中进行解码。

在没有B帧存在的情况下DTS的顺序和PTS的顺序应该是一样的。

IPB帧的不同:

I frame:自身可以通过视频解压算法解压成一张单独的完整的图片。

P frame:需要参考其前面的一个I frame 或者B frame来生成一张完整的图片。

B frame:则要参考其前一个I或者P帧及其后面的一个P帧来生成一张完整的图片。

两个I frame之间形成一个GOP,在x264中同时可以通过参数来设定bf的大小,即:I 和p或者两个P之间B的数量。

通过上述基本可以说明如果有B frame 存在的情况下一个GOP的最后一个frame一定是P.

DTS和PTS的不同:

DTS主要用于视频的解码,在解码阶段使用.PTS主要用于视频的同步和输出.在display的时候使用.在没有B frame的情况下.DTS和PTS的输出顺序是一样的.

例子:

下面给出一个GOP为15的例子,其解码的参照frame及其解码的顺序都在里面:

ibpdtspts

如上图:I frame 的解码不依赖于任何的其它的帧.而p frame的解码则依赖于其前面的I frame或者P frame.B frame的解码则依赖于其前的最近的一个I frame或者P frame 及其后的最近的一个P frame.

分享到:
评论

相关推荐

    I 帧,B帧,P帧简介

    H264是新一代的编码标准,以高压缩高质量和支持多种网络的流媒体传输著称,在编码方面,我理解的他的理论依据是:参照一段时间内图像的统计结果表明,在相邻几幅图像画面中,一般有差别的像素只有10%以内的点,亮度...

    C/C++音视频实战-gb28181系列-pjsip-sip栈-h264安防流媒体服务器

    帧率码率分辨率像素格式色彩空间I帧P帧B帧PTS与DTSYUV与RGB位深与色域封装格式: mp4、mkv、flv、avi等编码格式:H264、HEvC、vP9、AV1等 音视频开源库 1、多媒体处理多媒体处理包括:FFmpeg、libav、Gstreamer。其中...

    小日本视频转换器

    就是对于P帧的图块,在I帧中寻找对应的部分,然后对两个图块的差异部分进 行编码,可以大大节省码率。运动检测精度越高,图块搜索匹配的范围越大,编码效率越高,同时编码速度越慢。这部分算法同样没有在mpeg标准中...

    AnalysisAVP:音频视频学习,相关文件格式协议分析。h264nalu aac adts flv

    分析值 音频和视频协议分析 音视频基本原理 视频录制原理 ... I帧是P帧和B帧的参考帧(其质量直接影响到同组中以后各帧的质量); IDR帧是帧组GOP的基础帧(第一个(I)帧),在成对的GOP中只有一个ID

    AMR在ip域中的编码

    AMR在IP域中的编码(rfc3267,4867) ... | h(176)|P|P|P|P|P|P|P| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 多通道多帧,见协议 字节对齐模式Octet-aligned Mode a...

    免费视频转换工具 Pazera Free MP4 Video Converter 1.5 中文多语免费版.zip

    支持的输入格式:AVI,DIVX,XVID,MPG,MPEG,MPE,MP4V,WMV,ASF,MP4,M4V,MOV,QT,3GP,3GPP,3G2、3GP2、3GA,MKV,MKA,FLV,SWF(未压缩) ,F4V,F4P,F4A,F4B,WEBM,VOB,DAT,RM,RMVB,OGM,OGV,...

    数据通信与计算机网络作业答案Word版.doc

    接收方,根据控制信息从帧中提取出数据交给网络层。 5) 物理层:透明传送比特流。所传送数据的单位是比特。 2-16共4站进行CDMA通信,码序列分别为 A(-1-1-1+1+1-1+1+1) B(-1-1+1-1+1+1+1-1) C(-1+1-1+1+1+1-1-1...

    岳维功 ortp-realease.pdf

    b datap b rptr db base b rptr db base b wptr db lim b wpt db lim db freen db freef reserve db ref reserved db ref Buffer Buffe 图 除了向队列添加消息块外,上述数据结构设计还支持向个消息块添加新的消息块,...

    JAVA上百实例源码以及开源项目

     数字证书:从文件中读取数字证书,生成文件输入流,输入文件为c:/mycert.cer,获取一个处理X.509证书的证书工厂…… Java+ajax写的登录实例 1个目标文件 内容索引:Java源码,初学实例,ajax,登录  一个Java+ajax写...

    JAVA上百实例源码以及开源项目源代码

    数字证书:从文件中读取数字证书,生成文件输入流,输入文件为c:/mycert.cer,获取一个处理X.509证书的证书工厂…… Java+ajax写的登录实例 1个目标文件 内容索引:Java源码,初学实例,ajax,登录 一个Java+ajax写的...

    java开源包1

    使用简便和直截了当,用户只需要加载的图片和调整帧您想要的,如位置,时间显示和处理方法前帧。 Java的PList类库 Blister Blister是一个用于操作苹果二进制PList文件格式的Java开源类库(可用于发送数据给iOS应用...

    RouterOS2.9.6.with.crack及配置动画

    l SNMP – 只读访问 l M3P – MikroTik分包协议,支持无线连接和以太网。 l MNDP – MikroTik邻近探测协议;同样支持思科的CDP。 l Tools - ping; traceroute; bandwidth test; ping flood; telnet; SSH; packet ...

    java开源包11

    使用简便和直截了当,用户只需要加载的图片和调整帧您想要的,如位置,时间显示和处理方法前帧。 Java的PList类库 Blister Blister是一个用于操作苹果二进制PList文件格式的Java开源类库(可用于发送数据给iOS应用...

    java开源包2

    使用简便和直截了当,用户只需要加载的图片和调整帧您想要的,如位置,时间显示和处理方法前帧。 Java的PList类库 Blister Blister是一个用于操作苹果二进制PList文件格式的Java开源类库(可用于发送数据给iOS应用...

    java开源包3

    使用简便和直截了当,用户只需要加载的图片和调整帧您想要的,如位置,时间显示和处理方法前帧。 Java的PList类库 Blister Blister是一个用于操作苹果二进制PList文件格式的Java开源类库(可用于发送数据给iOS应用...

    java开源包6

    使用简便和直截了当,用户只需要加载的图片和调整帧您想要的,如位置,时间显示和处理方法前帧。 Java的PList类库 Blister Blister是一个用于操作苹果二进制PList文件格式的Java开源类库(可用于发送数据给iOS应用...

    java开源包5

    使用简便和直截了当,用户只需要加载的图片和调整帧您想要的,如位置,时间显示和处理方法前帧。 Java的PList类库 Blister Blister是一个用于操作苹果二进制PList文件格式的Java开源类库(可用于发送数据给iOS应用...

    java开源包10

    使用简便和直截了当,用户只需要加载的图片和调整帧您想要的,如位置,时间显示和处理方法前帧。 Java的PList类库 Blister Blister是一个用于操作苹果二进制PList文件格式的Java开源类库(可用于发送数据给iOS应用...

Global site tag (gtag.js) - Google Analytics