Mercurial > mplayer.hg
changeset 15557:40d5e0ccce93
sync to x264 r239 (zoned ratecontrol and UMHex ME)
author | lorenm |
---|---|
date | Tue, 24 May 2005 06:03:37 +0000 |
parents | 7575f4b17b48 |
children | 3aee7daaa8e5 |
files | DOCS/man/en/mplayer.1 configure libmpcodecs/ve_x264.c |
diffstat | 3 files changed, 30 insertions(+), 7 deletions(-) [+] |
line wrap: on
line diff
--- a/DOCS/man/en/mplayer.1 Tue May 24 02:41:48 2005 +0000 +++ b/DOCS/man/en/mplayer.1 Tue May 24 06:03:37 2005 +0000 @@ -7957,6 +7957,23 @@ higher values force it to vary more smoothly. . .TP +.B zones=<zone0>[/\:<zone1>[/\:...]] +User specified quality for specific parts (ending, credits, ...) +(ABR or two pass). +Each zone is <start-frame>,<end-frame>,<option> where option may be +.PD 0 +.RSs +.IPs "q=<0\-51>" +quantizer +.IPs "b=<0.01\-100.0>" +bitrate multiplier +.RE +.PD 1 +Note: The quantizer option is not strictly enforced. +It affects only the planning stage of ratecontrol, and is still subject +to overflow compensation and qp_min/qp_max. +. +.TP .B direct_pred=<0\-2> Determines the type of motion prediction used for direct macroblocks in B-frames. @@ -8014,7 +8031,7 @@ 4x4mv is recommended only with subq >= 3. . .TP -.B me=<1\-3> +.B me=<1\-4> Select fullpixel motion estimation algorithm. .PD 0 .RSs @@ -8023,7 +8040,9 @@ .IPs 2 hexagon search, radius 2 (default) .IPs 3 -Exhaustive search, controlled by me_range (very slow). +uneven multi-hexagon search +.IPs 4 +exhaustive search, controlled by me_range (very slow) .RE .PD 1 .
--- a/configure Tue May 24 02:41:48 2005 +0000 +++ b/configure Tue May 24 06:03:37 2005 +0000 @@ -6052,7 +6052,7 @@ cat > $TMPC << EOF #include <inttypes.h> #include <x264.h> -#if X264_BUILD < 24 +#if X264_BUILD < 27 #error We do not support old versions of x264. Get the latest from SVN. #endif int main(void) { x264_encoder_open((void*)0); return 0; }
--- 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;