I帧、P帧、B帧,以及PTS、DTS

朴灿烈づ我的快乐病毒、 2022-04-18 01:52 508阅读 0赞

一、概述

  • 视频压缩中,每帧代表一幅静止的图像。而在实际压缩时,会采取各种算法减少数据的容量,其中IPB就是最常见的,p和b都是基于I帧来压缩数据。
  • I帧(intra picture)是关键帧,属于帧内压缩,也就是在解码的时候该帧可以独立的完成解码
  • P帧(predictive-frame)为向前预测编码帧,即P帧解码时需要参考前面相关帧的信息才能解码;
  • B帧(bi-directional interpolated prediction frame)为双向预测内插编码帧,解码时既需要参考前面已有的帧又需要参考后面待解码的帧
  • PTS(Presentation Time Stamp):PTS主要用于度量解码后的视频帧什么时候被显示出来
  • DTS(Decode Time Stamp):DTS主要是标识读入内存中的bit流在什么时候开始送入解码器中进行解码
  • 两个I帧之间形成一个GOP,在x264中可以通过参数来设定bf的大小,即:I 和p或者两个P之间B的数量。
  • 通过上述基本可以说明如果有B帧 存在的情况下一个GOP的最后一个帧一定是P。

二、I,P,B帧特点及DTS和PTS的不同

1、I帧
  • 1、它是一个全帧压缩编码帧。它将全帧图像信息进行JPEG压缩编码并传输;
  • 2、解码时仅用I帧的数据就可重构完整图像;
  • 3、I帧描述了图像背景和运动主体的详情;
  • 4、I帧不需要参考其他画面而生成;
  • 5、I帧是P帧和B帧的参考帧(其质量直接影响到同组中以后各帧的质量);
  • 6、I帧是帧组GOP(图像组)的基础帧(第一帧),在一组中只有一个I帧;
  • 7、I帧不需要考虑运动矢量;
  • 8、I帧所占数据的信息量比较大。
2、P帧
  • 1、P帧是I帧后面相隔1~2帧的编码帧;
  • 2、P帧采用运动补偿的方法传送它与前面的I或P帧的差值及运动矢量(预测误差);
  • 3、解码时必须将I帧中的预测值与预测误差求和后才能重构完整的P帧图像;
  • 4、P帧属于前向预测的帧间编码。它只参考前面最靠近它的I帧或P帧;
  • 5、P帧可以是其后面P帧的参考帧,也可以是其前后的B帧的参考帧;
  • 6、由于P帧是参考帧,它可能造成解码错误的扩散;
  • 7、由于是差值传送,P帧的压缩比较高。
3、B帧
  • 1、B帧是由前面的I或P帧和后面的P帧结合来进行预测的;
  • 2、B帧传送的是它与前面的I或P帧和后面的P帧之间的预测误差及运动矢量;
  • 3、B帧是双向预测编码帧;
  • 4、B帧压缩比最高,因为它只反映两参考帧间运动主体的变化情况,预测比较准确;
  • 5、B帧不是参考帧,不会造成解码错误的扩散。
4、DTS和PTS的不同
  • DTS主要用于视频的解码,在解码阶段使用。
  • PTS主要用于视频的同步和输出。在display的时候使用
  • 在没有B frame的情况下,DTS和PTS的输出顺序是一样的

三、MPEG压缩方式

1、MPEG压缩方式的影响参数
  • GOP(Group Of Picture)图像组的长度,一般可以编码方式的长度为1-15。
  • I帧和P帧之间B帧的数量,一般是1~2个。
2、解码的参照帧及其解码的顺序

image

image


参考网址:
  1. https://blog.csdn.net/davidsguo008/article/details/72628690
  2. https://blog.csdn.net/austinblog/article/details/25184103
  3. https://blog.csdn.net/jgl841001/article/details/8055524

发表评论

表情:
评论列表 (有 0 条评论,508人围观)

还没有评论,来说两句吧...

相关阅读

    相关 视频编码之IPB

    视频传输原理 视频是利用人眼视觉暂留的原理,通过播放一系列的图片,使人眼产生运动的感觉。单纯传输视频画面,视频量非常大,对现有的网络和存储来说是不可接受的。为了能够使视频便