Mercurial > mplayer.hg
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; |