[x264-devel] x264 generates non-deterministic output with multithreads and vbv mode

Zhi Li zli at netflix.com
Fri Apr 17 18:48:44 CEST 2015


Dear developers,

I have found that when the number of threads is more than one, and vbv
mode is turned on (by setting vbv-maxrate and vbv-bufsize), the output
is not bit-exact every time the encoding is run. For example:

x264 --frames 48 --input-res 576x324 --threads 2 --vbv-maxrate 563
--vbv-bufsize 750 --bitrate 375 --output "output.264" "input.yuv"

generates non-deterministic output, whereas both

x264 --frames 48 --input-res 576x324 --threads 1 --vbv-maxrate 563
--vbv-bufsize 750 --bitrate 375 --output "output.264" "input.yuv"
x264 --frames 48 --input-res 576x324 --threads 2 --bitrate 375
--output "output.264" "input.yuv"

generate deterministic output.

By running some post-encode verification, I find that sometimes the
non-deterministic output can differ by 2 dB in frame PSNR.

environment: Ubuntu 14.04 LTS
version: x264 0.142.x
built on Apr 16 2015, gcc: 4.8.2
configuration: --bit-depth=8 --chroma-format=all

Any suggestions or fixes will be greatly appreciated.

Best,
Zhi Li


More information about the x264-devel mailing list