IPB帧,pts,dts

概念:

简单地说,I帧是关键帧,属于帧内压缩。
         P是向前搜索的意思。
         B是双向搜索。
他们都是基于I帧来压缩数据。

I frame :帧内编码帧 又称intra picture,关键帧。I 帧通常是每个 GOP(MPEG 所使用的一种视频压缩技术)
的第一个帧,视频序列中的第一个帧始终都是I帧。经过适度地压缩,I帧可以作为参考点来实现快进、快退以及其它
随机访问功能。帧可以看成是一个图像经过压缩后的产物,你可以理解为这一帧画面的完整保留。解码时只需要本帧
数据就可以完成(因为包含完整画面)。

P frame: 前向预测编码帧 又称predictive-frame,也叫预测帧。它表示的是这一帧跟之前的一个关键帧(或P帧)
的差别,解码时需要用之前缓存的画面叠加上本帧定义的差别,生成最终画面。(也就是差别帧,P帧没有完整画面数
据,只有与前一帧的画面差别的数据)

B frame: 双向预测内插编码帧 又称bi-directional interpolated prediction frame,也叫双向预测帧;也就
是B帧记录的是本帧与前后帧的差别(具体比较复杂,有4种情况),换言之,要解码B帧,不仅要取得之前的缓存画面,
还要解码之后的画面,通过前后画面的与本帧数据的叠加取得最终的画面。B帧压缩率高,但是解码时CPU会比较累~。

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

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

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

 

IPB帧的不同:

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

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

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

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

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

  所以,如果视频流只有I和P,解码器可以不管后面的数据,边读边解码,线性前进。

 

DTS和PTS区别:

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

 

例1:

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

ibpdtspts

如上图:

I frame 的解码不依赖于任何的其它的帧.

而p frame的解码则依赖于其前面的I frame或者P frame.

B frame的解码则依赖于其前的最近的一个I frame或者P frame 及其后的最近的一个P frame.

 

*************************************************************************************************************************

 

一般平均来说,I的压缩率是7(跟JPG差不多),P是20,B可以达到50,可见使用B帧能节省大量空间,节省出来的空间
可以用来保存多一些I帧,这样在相同码率下,可以提供更好的画质。

例2:

在上图中,GOP (Group of Pictures)长度为13,S0~S7 表示 8个视点,T0~T12 为 GOP的 13个时刻。每个 GOP包含
帧数为视点数 GOP 长度的乘积。在该图中一个 GOP 中,包含94 个 B帧。B 帧占一个 GOP 总帧数的 90.38%。GOP
越长,B 帧所占比例更高,编码的率失真性能越高。下图测试序列 Race1 在不同 GOP 下的率失真性能对比。


 

参考:

http://www.cnblogs.com/qingquan/archive/2011/07/27/2118967.html

http://blog.csdn.net/abcjennifer/article/details/6577934

http://hi.baidu.com/ethancheer/item/f7ee639f67d7c7de1f42713e

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值