[x264-devel] Warn users when using --(psnr|ssim) without --tune (psnr|ssim)

Takashi Mochizuki mochi at da2.so-net.ne.jp
Sun Apr 17 02:31:24 CEST 2011


Hello,
I have a question about --tune psnr behavior.

//

encoder/encoder.c - x264_validate_parameters()
 775     h->param.rc.i_aq_mode = x264_clip3( h->param.rc.i_aq_mode, 0, 2 );
 776     h->param.rc.f_aq_strength = x264_clip3f( h->param.rc.f_aq_strength, 0, 3 );
 777     if( h->param.rc.f_aq_strength == 0 )
 778         h->param.rc.i_aq_mode = 0;
 779     /* MB-tree requires AQ to be on, even if the strength is zero. */
 780     if( !h->param.rc.i_aq_mode && h->param.rc.b_mb_tree )
 781     {
 782         h->param.rc.i_aq_mode = 1;
 783         h->param.rc.f_aq_strength = 0;
 784     }

Thus, when I use --tune psnr with mb_tree, it forces aq_mode on, and I will get

[libx264 @ 0x24404a00] --psnr used with AQ on: results will be invalid!
[libx264 @ 0x24404a00] --tune psnr should be used if attempting to benchmark psnr!

So, it seems to require that mbtree should be off when using --tune psnr.
Is this intended behavior?

If so, I think it is better to turn mbtree off in x264_param_apply_tune.

common/common.c - x264_param_apply_tune()
 345         else if( !strncasecmp( s, "psnr", 4 ) )
 346         {
 347             if( psy_tuning_used++ ) goto psy_failure;
 348             param->rc.i_aq_mode = X264_AQ_NONE;
 349             param->analyse.b_psy = 0;
 350         }

//


More information about the x264-devel mailing list