x264编码中I帧B帧P帧及dts和pts相互关系

文章介绍了视频编码中的I帧、P帧和B帧的概念,它们在编码和解码过程中的依赖关系,以及PTS和DTS在视频播放中的作用。I帧是可以独立解码的帧,P帧依赖前面的I或P帧,B帧依赖前后两个帧。GOP是I帧和P帧之间的单位,B帧的存在可能改变DTS和PTS的顺序。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

什么是I帧:

       I帧,帧内编码帧 又称intra picture,I 帧通常是每个 GOP的第一个帧,经过适度地压缩,做为随机访问的参考点,能独立解码的帧称之为I帧。

什么是P帧:

        P帧,前向预测编码帧 又称predictive-frame,通过充分将低于图像序列中前面已编码帧的时间冗余信息来压缩传输数据量的编码图像,也叫预测帧,p帧不能独立解码,依赖于前面的I帧或者P帧;

什么是B帧:

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

什么是PTS:

       PTS, Presentation Time Stamp通俗来讲就是播放时间或者渲染时间。PTS主要用于度量解码后的视频帧什么时候被显示出来

什么是DTS:

DTS,Decode Time Stamp。通俗来讲就是解码时间,也就是流在什么时候开始送入解码器中进行解码。

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

IPB帧有什么差异:

I帧:I帧独立能通过视频解压算法解压成完整帧。

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

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

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

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

DTS和PTS的差异:

DTS主要用于视频的解码时间,在解码阶段使用.PTS主要用于视频的同步和输出.在播放或渲染的时候使用.在没有B frame的情况下.DTS和PTS的输出顺序是一样的.在有B帧的时候则不一样,如下一个GOP为15的例子,其解码的参照frame及其解码的顺序:

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

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值