分页: 1 / 1

x264 Open-GOP/Infinite Keyint 测试

发表于 : 2010-09-20 23:08
akiduki
x264最近的更新加入了两个关于keyframe的参数,--open-gop和--keyint infinite。
所谓open-gop,就是指允许类似IBBPBBIBB的frame结构,它的作用在于提高低keyint设置时的压缩率。
--keyint infinite的作用和open-gop正好相反,它为了最大化的利用压缩率存在的。开启infinite的open-gop后,除非scene-cut自动判定需要加入keyframe,一般情况下都不会加入keyframe。

众所周知,过于频繁的keyframe存在会降低压缩率,而一定频率的keyframe又能保证GOP间的B和P帧拥有良好的预测精度。同时keyframe的存在又保证了编码视频的可seek能力这在某些应用场合又是非常关键的。所以keyframe的选择是一个因人而异,因应用场合不同而变化的参数。

对于我们ripper来说,保证质量是优先考虑的,那么也许这两个参数,特别是infinite keyint,将对质量有一定帮助作用。于是我做了下面测试:

测试视频:ice,waterfall,ducks take off
分辨率:前两者CIF,后者720p

对SD序列我使用了600k的码率,对ducks这个特别吃码率的超级视频我使用了6000k的码率(即使这样QP也都大于30),RC使用的是2pass,除了这两者外其他参数都一致,并使用了我常用的参数配置。我试验了开启/关闭open-gop以及keyint使用常用设置(fpsx4)/infinite共四种组合。由于环境限制我没有用肉眼观看质量,只是使用了psnr和ssim两种质量模型,测试结果如下:
Results
Results
由于open-gop开启/keyint infinite与open-gop关闭/keyint infinite结果一模一样,所以不在列出了。这也可以理解,因为两者对keyframe的控制作用是完全相反的。

从上面的结果不难看出,开启open-gop保持现有keyint的设定,或者完全无视open-gop直接上极端的无穷keyint interval,都能对最终编码视频的质量有所提升(opengop的提升很有限)。至于两者选何者好就要根据实际编码视频的质量,以及可播放性来确定了,如果是极端ep的终极质量追求者,看片子几乎不seek,那就选择keyint infinite吧。

Re: x264 Open-GOP/Infinite Keyint 测试

发表于 : 2011-01-29 15:50
KBu
开启open-gop保持现有keyint的设定,确实节省码率,就是拖动时候会有MSK

Re: x264 Open-GOP/Infinite Keyint 测试

发表于 : 2011-01-30 9:46
06_taro
KBu 写了:开启open-gop保持现有keyint的设定,确实节省码率,就是拖动时候会有MSK
Some decoders don't fully support open-GOP streams, which is why this hasn't been enabled by default. You should test with all decoders your streams will be played on, or (if that's impossible) wait until support is generally available.
所以更喜欢keyint infinite...