[x264-devel] Default value for the --scenecut option causes heavy undesirable flood of I slices in active scenes

Vladimir Chernyshov vchernys at welho.com
Sun Nov 2 00:19:30 CET 2008


Hello,

I noticed, that in some active scenes, such as a textured sea bottom, 
shot through a shallow layer of water with waves, the default value (40) 
of the scenecut parameter of the latest x.264 causes a flood of I frames 
even though there is no scene change. This causes the codec to badly 
bleed bits in a scene, which, on the contrary, can tolerate more 
compression due to its high activity. This also completely defeats the 
purpose of the scenecut, which is to save bits (on a scene change).

x264 \
--colorprim bt470bg --transfer bt470bg --colormatrix bt470bg \ 

--bframes 2 --b-adapt 0 --crf 18 --qcomp 1.0 --ref 3 --weightb \ 

--keyint 250 --no-cabac --progress -o out1.264 -v raw-d2.1.y4m

x264 [info]: slice I:197   Avg QP:14.70  size: 82143  PSNR Mean Y:48.08 
U:51.18 V:50.51 Avg:48.82 Global:48.80
x264 [info]: slice P:183   Avg QP:17.31  size: 61616  PSNR Mean Y:46.16 
U:49.52 V:48.74 Avg:46.94 Global:46.93
x264 [info]: slice B:10    Avg QP:19.50  size: 50737  PSNR Mean Y:43.52 
U:46.49 V:45.69 Avg:44.22 Global:44.21
x264 [info]: consecutive B-frames: 90.7%  6.2%  3.1%
x264 [info]: mb I  I16..4:  1.7%  0.0% 98.3%
x264 [info]: mb P  I16..4:  2.0%  0.0% 88.9%  P16..4:  2.9%  4.3%  1.8% 
  0.0%  0.0%    skip: 0.0%
x264 [info]: mb B  I16..4: 15.6%  0.0%  0.0%  B16..8: 15.2% 23.6% 39.0% 
  direct: 6.6%  skip: 0.0%  L0:39.9% L1:33.2% BI:26.9%
x264 [info]: ref P L0  86.3%  8.8%  4.8%
x264 [info]: ref B L0  76.8% 23.2%
x264 [info]: SSIM Mean Y:0.9890471
x264 [info]: PSNR Mean Y:47.062 U:50.279 V:49.556 Avg:47.818 
Global:47.658 kb/s:28682.46

encoded 390 frames, 1.21 fps, 28683.75 kb/s

-----------------------------------------------------------------
x264 \
--colorprim bt470bg --transfer bt470bg --colormatrix bt470bg \ 

--bframes 2 --b-adapt 0 --crf 18 --qcomp 1.0 --ref 3 --weightb \ 

--keyint 250 --no-cabac --progress -o out1.264 -v --scenecut 0 \ 
raw-d2.1.y4m

x264 [info]: slice I:2     Avg QP:15.42  size: 76258  PSNR Mean Y:47.66 
U:50.70 V:50.12 Avg:48.40 Global:48.39
x264 [info]: slice P:130   Avg QP:17.43  size: 62234  PSNR Mean Y:46.17 
U:49.55 V:48.80 Avg:46.96 Global:46.94
x264 [info]: slice B:258   Avg QP:19.71  size: 54331  PSNR Mean Y:43.27 
U:46.22 V:45.52 Avg:43.97 Global:43.94
x264 [info]: consecutive B-frames:  0.3%  0.0% 99.7%
x264 [info]: mb I  I16..4:  1.2%  0.0% 98.8%
x264 [info]: mb P  I16..4:  2.2%  0.0% 96.1%  P16..4:  0.6%  0.8%  0.3% 
  0.0%  0.0%    skip: 0.0%
x264 [info]: mb B  I16..4: 19.3%  0.0%  0.0%  B16..8: 11.7% 25.0% 39.5% 
  direct: 4.5%  skip: 0.0%  L0:44.8% L1:36.3% BI:18.9%
x264 [info]: ref P L0  64.2% 19.8% 16.0%
x264 [info]: ref B L0  69.7% 30.3%
x264 [info]: SSIM Mean Y:0.9799161
x264 [info]: PSNR Mean Y:44.255 U:47.353 V:46.641 Avg:44.987 
Global:44.749 kb/s:22831.05

encoded 390 frames, 3.29 fps, 22831.71 kb/s

I suggest to change the default value of the scenecut parameter to 0, 
which is sufficient to detect real scene cuts, and will not inflate the 
the bitrate of highly active scenes.

regards,
Vladimir


More information about the x264-devel mailing list