浅谈OpenGOP与ClosedGOP
Posted zhanghui_cuc
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了浅谈OpenGOP与ClosedGOP相关的知识,希望对你有一定的参考价值。
错误地设置OpenGOP与ClosedGOP,将导致某些android手机上的解码错误
作为GOP的两种结构,ClosedGOP是指帧间的预测都是在GOP中进行的,而对于OpenGOP来说,一个GOP里面的某一帧在解码时要依赖于相邻GOP中的某一些帧。
下图展示的就是一个OpenGOP的例子,在这个例子中, 末尾的两个B帧需要依赖下一个GOP中的I帧进行解码。
而下图展示的是两个CloseGOP的例子。我们也可以得出一个结论,如果一段视频内的所有I帧都同时是IDR帧,那么这段视频的所有GOP都是ClosedGOP。
虽然理论上相同码率下开启OpenGOP能带来更好的质量(B帧可以更多),但外网有人对比实测下来发现并没有明显的差距。下表分别展示了使用OpenGOP和ClosedGOP时的VMAF分数:
除此之外,如果是在HLS、DASH等自适应流媒体的场景下,为了实现码流之间的无缝切换,也必须使用ClosedGOP。
再考虑到部分手机的硬件解码器无法很好地支持OpenGOP(原因也许是没有区分普通I帧和IDR帧),所以不要犹豫,直接关闭OpenGOP选项就好了。
在x264中,OpenGOP选项默认是关闭的,但是在x265中则相反。我们可以设置下面的选项来关闭OpenGOP:
open-gop=0
欢迎关注我的公众号灰度五十,分享各类音视频、移动开发知识~
文章帮到你了?可以扫描如下二维码进行打赏,打赏多少您随意~
以上是关于浅谈OpenGOP与ClosedGOP的主要内容,如果未能解决你的问题,请参考以下文章