Mercurial > mplayer.hg
diff libmpcodecs/ve_x264.c @ 15557:40d5e0ccce93
sync to x264 r239 (zoned ratecontrol and UMHex ME)
author | lorenm |
---|---|
date | Tue, 24 May 2005 06:03:37 +0000 |
parents | 561f617e8944 |
children | e848b20cd449 |
line wrap: on
line diff
--- a/libmpcodecs/ve_x264.c Tue May 24 02:41:48 2005 +0000 +++ b/libmpcodecs/ve_x264.c Tue May 24 06:03:37 2005 +0000 @@ -93,6 +93,7 @@ static float qblur = 0.5; static float complexity_blur = 20; static char *rc_eq = "blurCplx^(1-qComp)"; +static char *zones = NULL; static int subq = 5; static int me_method = 2; static int me_range = 16; @@ -145,8 +146,9 @@ {"qcomp", &qcomp, CONF_TYPE_FLOAT, CONF_RANGE, 0, 1, NULL}, {"qblur", &qblur, CONF_TYPE_FLOAT, CONF_RANGE, 0, 99, NULL}, {"cplx_blur", &complexity_blur, CONF_TYPE_FLOAT, CONF_RANGE, 0, 999, NULL}, + {"zones", &zones, CONF_TYPE_STRING, 0, 0, 0, NULL}, {"subq", &subq, CONF_TYPE_INT, CONF_RANGE, 1, 5, NULL}, - {"me", &me_method, CONF_TYPE_INT, CONF_RANGE, 1, 3, NULL}, + {"me", &me_method, CONF_TYPE_INT, CONF_RANGE, 1, 4, NULL}, {"me_range", &me_range, CONF_TYPE_INT, CONF_RANGE, 4, 64, NULL}, {"level_idc", &level_idc, CONF_TYPE_INT, CONF_RANGE, 10, 51, NULL}, {"psnr", &psnr, CONF_TYPE_FLAG, 0, 0, 1, NULL}, @@ -191,7 +193,6 @@ mod->param.rc.f_qblur = qblur; mod->param.rc.f_complexity_blur = complexity_blur; mod->param.analyse.i_subpel_refine = subq; - mod->param.analyse.i_me_method = subq==1 ? X264_ME_DIA : X264_ME_HEX; mod->param.rc.psz_stat_out = passtmpfile; mod->param.rc.psz_stat_in = passtmpfile; if((pass & 2) && bitrate <= 0) @@ -233,12 +234,15 @@ } mod->param.rc.f_ip_factor = ip_factor; mod->param.rc.f_pb_factor = pb_factor; + mod->param.rc.psz_zones = zones; switch(me_method) { case 1: mod->param.analyse.i_me_method = X264_ME_DIA; break; case 2: mod->param.analyse.i_me_method = X264_ME_HEX; break; - case 3: mod->param.analyse.i_me_method = X264_ME_ESA; - mod->param.analyse.i_me_range = me_range; break; + case 3: mod->param.analyse.i_me_method = X264_ME_UMH; break; + case 4: mod->param.analyse.i_me_method = X264_ME_ESA; break; } + if(me_method >= 3) + mod->param.analyse.i_me_range = me_range; mod->param.analyse.inter = X264_ANALYSE_I4x4; if(p4x4mv) mod->param.analyse.inter |= X264_ANALYSE_PSUB8x8;