IDR帧是GOP的关系是什么
dwing吧
全部回复
仅看楼主
level 7
haierccc 楼主
在研究x264的参数的时候,接触到了很多概念,IDR和GOP的概念让我有点糊涂。
我知道H.264有I帧(完全的图像,体积也最大),P帧(记录相对于前面I和P的差异,体积变小),B帧(记录前后帧的差异,体积最小)。B帧还分为2种:不可被参考的,和可被参考的。
我不太清楚GOP(Group of Pictures)到底是起什么作用,为什么会有GOP这个概念呢?
按照网上的说法,GOP是以I帧分割的图片序列,换句话说,GOP的值是指第一个I帧,到最后一个I帧之前的帧的数量。比如:IPPPPPI,GOP=6
关于GOP我看到2种说法,一种说法如上,1个GOP里面只有一个I帧
第二种说法是1个GOP里面可以有好几个I帧,所以我就糊涂了。
IDR帧也是让我糊涂的地方,据我查到的资料,IDR是强制刷新帧
因为P和B都不是记录完整信息,记录的是与其它帧的差异,所以如果I帧本身有错误,这个错误就会遗传到下面的帧,但碰到IDR帧的时候,播放器丢弃以前所以的信息,从新开始解码,错误也就到此为止。
但这不就是I帧本身固有的特点么,因为I帧就是记录全部信息的,不用参考任何其它帧,以全新的I帧开始遗传,错误也是到此为止啊,那何必弄出个IDR的概念呢?
请赐教
2014年11月01日 12点11分 1
level 8
第一种说法是针对Mpeg2的,这里面一个GOP只有且只有一个在组头的I帧;第二种说法是针对h264的新特性
2014年11月04日 03点11分 3
level 13
I帧不用参考任何帧,但是之后的P帧和B帧是有可能参考这个I帧之前的帧的。IDR就不允许这样。
如:
IDR1 P4 B2 B3
P7 B5 B6
I10
B8 B9 P13 B11 B12 P16 B14 B15 这里的B8可以跨过I10去参考P7

IDR1 P4 B2 B3 P7 B5 B6
IDR8
P11
B9 B10 P14 B11 B12 这里的B9就只能参照IDR8和P11,不可以参考IDR8前面的帧
2014年11月04日 11点11分 4
知道了,谢谢!
2014年11月05日 10点11分
可以请教一下,X264里open-gop开启和关闭后的区别吗?
2015年02月13日 19点02分
@wayycs opengop打开gop组间参考,gop首帧为CRA,帧间参考可以跨过CRA参考临近gop中的帧。这时的随机接入点RAP可以是IDR或CRA,在跳转到CRA时,如果后面有需要跨gop参考的帧就会因为无法解码被舍弃成为RASL帧。能正常解码播放的RADL帧。一般不开opengop,那点压缩率我是不在意。
2015年02月14日 07点02分
@sherry22422 十分感谢!
2015年02月14日 10点02分
1