您的位置:首页 > 其它

H.264中普通I帧和IDR帧究竟有什么区别

2017-08-15 11:02 393 查看
参考百度知道:https://zhidao.baidu.com/question/1736344147087105907.html

I帧中,有一类特殊的I帧,叫做IDR帧。IDR帧的性质是,比如第1000帧是IDR帧,那么这一帧相当于一个分水岭,从1001帧开始,所有的帧都不能再参照1000帧之前的帧。在closed GOP规定下,0~999帧也不允许参照这个IDR帧以及之后的帧。等于说IDR帧将视频分割成两个独立的 部分:前面的(closed GOP规定下)不能参照后面的,后面的不能参照前面的。 这个性质在播放的时候额外有用:如果我直接从第1000帧开始播放,我可以毫无问题的播放下去,因为我不需要 参照1000帧之前的内容完成解码。我从开头播放,直到999帧的时候,我都不需要参照1000帧及它后面的东西; 1000帧之后的数据都损坏了,0~999帧也能正常播放。

IDR的全称叫做Instantaneous Decoder Refresh,意思是,解码到当前帧,解码器就可以把缓存全清了——之前 的所有帧信息都没用了;后续帧不会再去参照它们。

视频开头的I帧一定是IDR帧。

有时候,我们用I帧表示IDR帧,i帧表示非IDR的I帧。这种场合下,I帧和i帧都是independent frame,区别
在是否是IDR。

两个IDR帧之间的区间,从一个IDR帧开始,到下一个IDR前的帧结束,叫做IDR区间,又叫做GOP区间。closed GOP设定下,GOP区间可以看做是独立的一段视频:它里面的所有帧,都不需要参照任何区间之外的东西,只要 一个GOP区间是齐全的,区间里面所有的帧都能被解码。我们平时看的视频就是多段GOP区间连接起来的。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: