comparison 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
comparison
equal deleted inserted replaced
15556:7575f4b17b48 15557:40d5e0ccce93
91 static int pass = 0; 91 static int pass = 0;
92 static float qcomp = 0.6; 92 static float qcomp = 0.6;
93 static float qblur = 0.5; 93 static float qblur = 0.5;
94 static float complexity_blur = 20; 94 static float complexity_blur = 20;
95 static char *rc_eq = "blurCplx^(1-qComp)"; 95 static char *rc_eq = "blurCplx^(1-qComp)";
96 static char *zones = NULL;
96 static int subq = 5; 97 static int subq = 5;
97 static int me_method = 2; 98 static int me_method = 2;
98 static int me_range = 16; 99 static int me_range = 16;
99 static int level_idc = 40; 100 static int level_idc = 40;
100 static int psnr = 0; 101 static int psnr = 0;
143 {"pass", &pass, CONF_TYPE_INT, CONF_RANGE, 1, 3, NULL}, 144 {"pass", &pass, CONF_TYPE_INT, CONF_RANGE, 1, 3, NULL},
144 {"rc_eq", &rc_eq, CONF_TYPE_STRING, 0, 0, 0, NULL}, 145 {"rc_eq", &rc_eq, CONF_TYPE_STRING, 0, 0, 0, NULL},
145 {"qcomp", &qcomp, CONF_TYPE_FLOAT, CONF_RANGE, 0, 1, NULL}, 146 {"qcomp", &qcomp, CONF_TYPE_FLOAT, CONF_RANGE, 0, 1, NULL},
146 {"qblur", &qblur, CONF_TYPE_FLOAT, CONF_RANGE, 0, 99, NULL}, 147 {"qblur", &qblur, CONF_TYPE_FLOAT, CONF_RANGE, 0, 99, NULL},
147 {"cplx_blur", &complexity_blur, CONF_TYPE_FLOAT, CONF_RANGE, 0, 999, NULL}, 148 {"cplx_blur", &complexity_blur, CONF_TYPE_FLOAT, CONF_RANGE, 0, 999, NULL},
149 {"zones", &zones, CONF_TYPE_STRING, 0, 0, 0, NULL},
148 {"subq", &subq, CONF_TYPE_INT, CONF_RANGE, 1, 5, NULL}, 150 {"subq", &subq, CONF_TYPE_INT, CONF_RANGE, 1, 5, NULL},
149 {"me", &me_method, CONF_TYPE_INT, CONF_RANGE, 1, 3, NULL}, 151 {"me", &me_method, CONF_TYPE_INT, CONF_RANGE, 1, 4, NULL},
150 {"me_range", &me_range, CONF_TYPE_INT, CONF_RANGE, 4, 64, NULL}, 152 {"me_range", &me_range, CONF_TYPE_INT, CONF_RANGE, 4, 64, NULL},
151 {"level_idc", &level_idc, CONF_TYPE_INT, CONF_RANGE, 10, 51, NULL}, 153 {"level_idc", &level_idc, CONF_TYPE_INT, CONF_RANGE, 10, 51, NULL},
152 {"psnr", &psnr, CONF_TYPE_FLAG, 0, 0, 1, NULL}, 154 {"psnr", &psnr, CONF_TYPE_FLAG, 0, 0, 1, NULL},
153 {"nopsnr", &psnr, CONF_TYPE_FLAG, 0, 1, 0, NULL}, 155 {"nopsnr", &psnr, CONF_TYPE_FLAG, 0, 1, 0, NULL},
154 {"log", &log_level, CONF_TYPE_INT, CONF_RANGE, -1, 3, NULL}, 156 {"log", &log_level, CONF_TYPE_INT, CONF_RANGE, -1, 3, NULL},
189 mod->param.rc.psz_rc_eq = rc_eq; 191 mod->param.rc.psz_rc_eq = rc_eq;
190 mod->param.rc.f_qcompress = qcomp; 192 mod->param.rc.f_qcompress = qcomp;
191 mod->param.rc.f_qblur = qblur; 193 mod->param.rc.f_qblur = qblur;
192 mod->param.rc.f_complexity_blur = complexity_blur; 194 mod->param.rc.f_complexity_blur = complexity_blur;
193 mod->param.analyse.i_subpel_refine = subq; 195 mod->param.analyse.i_subpel_refine = subq;
194 mod->param.analyse.i_me_method = subq==1 ? X264_ME_DIA : X264_ME_HEX;
195 mod->param.rc.psz_stat_out = passtmpfile; 196 mod->param.rc.psz_stat_out = passtmpfile;
196 mod->param.rc.psz_stat_in = passtmpfile; 197 mod->param.rc.psz_stat_in = passtmpfile;
197 if((pass & 2) && bitrate <= 0) 198 if((pass & 2) && bitrate <= 0)
198 { 199 {
199 mp_msg(MSGT_MENCODER, MSGL_ERR, 200 mp_msg(MSGT_MENCODER, MSGL_ERR,
231 mod->param.rc.i_vbv_buffer_size = vbv_bufsize; 232 mod->param.rc.i_vbv_buffer_size = vbv_bufsize;
232 mod->param.rc.f_vbv_buffer_init = vbv_init; 233 mod->param.rc.f_vbv_buffer_init = vbv_init;
233 } 234 }
234 mod->param.rc.f_ip_factor = ip_factor; 235 mod->param.rc.f_ip_factor = ip_factor;
235 mod->param.rc.f_pb_factor = pb_factor; 236 mod->param.rc.f_pb_factor = pb_factor;
237 mod->param.rc.psz_zones = zones;
236 switch(me_method) { 238 switch(me_method) {
237 case 1: mod->param.analyse.i_me_method = X264_ME_DIA; break; 239 case 1: mod->param.analyse.i_me_method = X264_ME_DIA; break;
238 case 2: mod->param.analyse.i_me_method = X264_ME_HEX; break; 240 case 2: mod->param.analyse.i_me_method = X264_ME_HEX; break;
239 case 3: mod->param.analyse.i_me_method = X264_ME_ESA; 241 case 3: mod->param.analyse.i_me_method = X264_ME_UMH; break;
240 mod->param.analyse.i_me_range = me_range; break; 242 case 4: mod->param.analyse.i_me_method = X264_ME_ESA; break;
241 } 243 }
244 if(me_method >= 3)
245 mod->param.analyse.i_me_range = me_range;
242 mod->param.analyse.inter = X264_ANALYSE_I4x4; 246 mod->param.analyse.inter = X264_ANALYSE_I4x4;
243 if(p4x4mv) 247 if(p4x4mv)
244 mod->param.analyse.inter |= X264_ANALYSE_PSUB8x8; 248 mod->param.analyse.inter |= X264_ANALYSE_PSUB8x8;
245 if(p8x8mv) 249 if(p8x8mv)
246 mod->param.analyse.inter |= X264_ANALYSE_PSUB16x16; 250 mod->param.analyse.inter |= X264_ANALYSE_PSUB16x16;