[x264-devel] Yet another updated threaded slicetype patch (v14)

Steven Walters kemuri9 at gmail.com
Thu Apr 16 18:27:21 CEST 2009


>On Thu, Apr 16, 2009 at 10:58 AM, Mike Kazmier <DaKaZ at zenbe.com> wrote:
>
> Was this with or without Steven Walters patch to stop segfaults on windows? I have done regressions of basically every setting combination comparing the slicetype decisions of the lookahaed patch to r1134 and the decisions are identical (on linux at least) for all combination of settings.
>
> --DaKaZ

the above fix and other different ones i have tried on windows that
actively stop the seg faults have had side effects:
on combinations of arguments that would seg fault the v14 patch
without a said fix,
comparing slicetype decisions of +lookahead to -lookahead runs,
they are vastly different in that +lookahead runs having a fairly
higher % of p frames compared to -lookahead runs
i.e.:

./x264v14_fix.exe --lookahead 10 --b-adapt 2 -b16 --crf 18 -o NUL
../foreman_cif_352x288.yuv --me tesa -m9 --pass 1 --threads 4 -v 2>
verbose2.txt
(v14+fix) results in
x264 [info]: slice I:2     Avg QP:18.30  size: 31054  PSNR Mean
Y:43.84 U:46.41 V:47.94 Avg:44.68 Global:44.33
x264 [info]: slice P:232   Avg QP:20.32  size:  6050  PSNR Mean
Y:40.89 U:44.01 V:46.43 Avg:41.88 Global:41.77
x264 [info]: slice B:66    Avg QP:25.09  size:  2043  PSNR Mean
Y:37.57 U:42.41 V:43.66 Avg:38.74 Global:38.63
(and increasing lookahead further has no change in results)

./x264v14.exe --lookahead 10 --b-adapt 2 -b16 --crf 18 -o NUL
../foreman_cif_352x288.yuv --me tesa -m9 --pass 1 --threads 4 -v 2>
verbose2.txt
- seg fault

./x264v14.exe --lookahead 0 --b-adapt 2 -b16 --crf 18 -o NUL
../foreman_cif_352x288.yuv --me tesa -m9 --pass 1 --threads 4 -v 2>
verbose.txt
results in
x264 [info]: slice I:2     Avg QP:18.33  size: 30960  PSNR Mean
Y:43.80 U:46.40 V:47.92 Avg:44.65 Global:44.28
x264 [info]: slice P:128   Avg QP:20.78  size:  6730  PSNR Mean
Y:40.60 U:43.92 V:46.01 Avg:41.61 Global:41.42
x264 [info]: slice B:170   Avg QP:23.92  size:  1915  PSNR Mean
Y:38.70 U:42.96 V:45.18 Avg:39.85 Global:39.69

however, comparing runs of builds with std v14 to the v14+seg fault
fix on windows,
when the std v14 works, they both produce the same output which is
also the same to a -lookahead run.
i.e.:

./x264v14_fix.exe --lookahead 10 --b-adapt 2 -b10 --crf 18 -o NUL
../foreman_cif_352x288.yuv --me tesa -m9 --pass 1 --threads 4 -v 2>
verbose2.txt
results in
x264 [info]: slice I:2     Avg QP:18.33  size: 30960  PSNR Mean
Y:43.80 U:46.40 V:47.92 Avg:44.65 Global:44.28
x264 [info]: slice P:128   Avg QP:20.77  size:  6733  PSNR Mean
Y:40.61 U:43.92 V:46.02 Avg:41.61 Global:41.43
x264 [info]: slice B:170   Avg QP:23.90  size:  1928  PSNR Mean
Y:38.71 U:42.96 V:45.19 Avg:39.85 Global:39.70

./x264v14.exe --lookahead 10 --b-adapt 2 -b10 --crf 18 -o NUL
../foreman_cif_352x288.yuv --me tesa -m9 --pass 1 --threads 4 -v 2>
verbose2.txt
results in
x264 [info]: slice I:2     Avg QP:18.33  size: 30960  PSNR Mean
Y:43.80 U:46.40 V:47.92 Avg:44.65 Global:44.28
x264 [info]: slice P:128   Avg QP:20.77  size:  6733  PSNR Mean
Y:40.61 U:43.92 V:46.02 Avg:41.61 Global:41.43
x264 [info]: slice B:170   Avg QP:23.90  size:  1928  PSNR Mean
Y:38.71 U:42.96 V:45.19 Avg:39.85 Global:39.70

./x264v14.exe --lookahead 0 --b-adapt 2 -b10 --crf 18 -o NUL
../foreman_cif_352x288.yuv --me tesa -m9 --pass 1 --threads 4 -v 2>
verbose.txt
x264 [info]: slice I:2     Avg QP:18.33  size: 30960  PSNR Mean
Y:43.80 U:46.40 V:47.92 Avg:44.65 Global:44.28
x264 [info]: slice P:128   Avg QP:20.77  size:  6733  PSNR Mean
Y:40.61 U:43.92 V:46.02 Avg:41.61 Global:41.43
x264 [info]: slice B:170   Avg QP:23.90  size:  1928  PSNR Mean
Y:38.71 U:42.96 V:45.19 Avg:39.85 Global:39.70

so there seems to be some sort of unwanted result when reaching the
pinnacle where the seg fault normally occurs in that there are more
p frames as a result of lookahead being active....

is a similar situation not also occurring on linux systems?


More information about the x264-devel mailing list