I帧、B帧、P帧比较而言,I帧的压缩量最大,mpeg所定义的帧内图像

  I帧、B帧、P帧比较而言,I帧的压缩量最大,mpeg所定义的帧内图像

  http://www . 360 doc . com/content/11/0718/17/474846 _ 134326279 . shtml

  mpeg4每一帧的开头都是固定的:00 00 01 b6,那么我们如何判断当前帧属于哪一帧呢?接下来的两位会告诉我们答案。注意:是2bit,不是byte。下面是各种类型的帧和2bit的对应关系:

  00: I帧

  01: P帧

  10:B帧

  为了更好地说明,我们举几个例子。以下是十六进制显示的视频编码:

  00 00 01 b61034 78 97 09 87 06 57 87 …… I框架

  000 01b65078 34 20c66b3 89 … p框架

  00 00 01 b69688 99 06 54 34 78 90 98 …… B框架

  我们来分析一下为什么分别是I、P、B帧。

  0x10=0001 0000

  0x50=0101 0000

  0x96=1001 0100

  看红色的2bit,对比开头提到的frame和2bit的对应关系。符合吗?

  下面是一个C代码,供大家参考:

  开关(buf[i](字节)0xc0)

  {

  案例0x00:

  //IFrame

  打破;

  案例0x40:

  //PFrame

  打破;

  案例0x80:

  //BFrame

  打破;

  默认值:

  打破;

  }

I帧、B帧、P帧比较而言,I帧的压缩量最大,mpeg所定义的帧内图像