h.264 gop

作者:fly 发布于:2015-12-6 21:04 分类:Linux

www.forwhat.cn

GOP 就是两个I帧之间的间隔.比如说GOP为120,如果是720p60的话,那就是2s一次I帧.

在视频编码序列中,主要有三种编码帧:I帧、P帧、B帧,如下图所示。


  ● I帧即Intra-coded picture(帧内编码图像帧),不参考其他图像帧,只利用本帧的信息进行编码

  ● P帧即Predictive-coded Picture(预测编码图像帧),利用之前的I帧或P帧,采用运动预测的方式进行帧间预测编码

  ● B帧即Bidirectionally predicted picture(双向预测编码图像帧),提供最高的压缩比,它既需要之前的图

像帧(I帧或P帧),也需要后来的图像帧(P帧),采用运动预测的方式进行帧间双向预测编码


  在视频编码序列中,GOP即Group of picture(图像组),指两个I帧之间的距离,Reference(参考周期)指两个P帧之间的距离(如下图3.1)。一个I帧所占用的字节数大于一个P帧,一个P帧所占用的字节数大于一个B帧(如下图3.1所示)。

5b9900dbc813006beb67705b253a1248.jpg

  I、P、B帧示意图


  所以在码率不变的前提下,GOP值越大,P、B帧的数量会越多,平均每个I、P、B帧所占用的字节数就越多,也就更容易获取较好的图像质量;Reference越大,B帧的数量越多,同理也更容易获得较好的图像质量。


  需要说明的是,通过提高GOP值来提高图像质量是有限度的,在遇到场景切换的情况时,H.264编码器会自动强制插入一个I帧,此时实际的GOP值被缩短了。另一方面,在一个GOP中,P、B帧是由I帧预测得到的,当I帧的图像质量比较差时,会影响到一个GOP中后续P、B帧的图像质量,直到下一个GOP开始才有可能得以恢复,所以GOP值也不宜设置过大。


  同时,由于P、B帧的复杂度大于I帧,所以过多的P、B帧会影响编码效率,使编码效率降低。另外,过长的GOP还会影响Seek操作的响应速度,由于P、B帧是由前面的I或P帧预测得到的,所以Seek操作需要直接定位,解码某一个P或B帧时,需要先解码得到本GOP内的I帧及之前的N个预测帧才可以,GOP值越长,需要解码的预测帧就越多,seek响应的时间也越长。

 

评论:

qq
2016-01-11 15:23

发表评论:

 
Powered by emlog sitemap