什么是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帧.