vcb-s/guides

x265 的 qg-size 与 limit-refs 的默认值问题

op200 opened this issue · 2 comments

在x265的文档中:
--qg-size的默认值为same as maxCUSize,也就是64
--limit-refs的默认值为3


但我使用 ffmpeg 7.0.1x265 3.6+28 输出 1080p yuv420 8 or 10bit 视频的默认值为qg-size=32 limit-refs=1
ffmpeg 6.1x265 3.5+111 也是同样的情况
独立的 x265 3.5+2-cce7d9c56 也是同样的情况
默认的ctu确实是64,但qg-size并没有像文档中写的那样

看起来是 x265 改了默认值但没有更新文档,建议向 x265 提 issue

通过 x265 -h 可以看到:
--qg-size 默认值为 32,实测也是如此

--limit-refs 默认值为 1,实测也是如此。不过这个不完全准确,实际上 preset 会改这个值,默认 preset medium 现在是 limit-refs=1,而它降一级 preset fast,仍然 limit-refs=3

补充一点,qgsize引入的时候(大概9年前吧)默认值设置为了64(但会根据preset变动),然后备注了一句same as maxCUSize(实际只是数值一样而已)。并非qgsize的默认值==ctu。所以qgsize的 default 实际上跟其他参数无关。
而目前的代码如楼上所说,已经改为了32了(无论哪个preset)。
而当qgsize超限的时候,你会看到 x265 的 log 里面有 warning 提示你他把你的qgsize值改动到了合法范围内了