mirror of
https://github.com/mpv-player/mpv
synced 2025-01-19 13:51:14 +00:00
New lavc flag: "turbo" mode which is supposed to speed up 2-pass encoding
while preserving quality as much as possible. Inspired by XviD "turbo" mode. git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@13387 b3059339-0415-0410-9bf9-f77b7e298cf2
This commit is contained in:
parent
a33c90828e
commit
7fa1bf6c59
@ -5327,6 +5327,13 @@ from the first pass.
|
||||
.PD 1
|
||||
.
|
||||
.TP
|
||||
.B turbo (2-pass only)
|
||||
Dramatically speeds up pass 1 using faster algorithms and disabling
|
||||
CPU-intensive options.
|
||||
This will probably reduce global PSNR a little bit (around 0.01dB) and
|
||||
change individual frame type and PSNR little bit more (up to 0.03dB).
|
||||
.
|
||||
.TP
|
||||
.B aspect=<x/\:y>
|
||||
Store movie aspect internally, just like MPEG files.
|
||||
Much nicer solution than rescaling, because quality isn't decreased.
|
||||
|
@ -1,4 +1,4 @@
|
||||
.\" synced with 1.722
|
||||
.\" synced with 1.723
|
||||
.\" MPlayer (C) 2000-2004 MPlayer Team
|
||||
.\" This man page was/is done by Gabucino, Diego Biurrun, Jonas Jermann
|
||||
.\" Traduction: Nicolas Le Gaillart < nicolas AT legaillart.com >
|
||||
@ -5568,6 +5568,13 @@ Encode avec une table Huffman optimis
|
||||
.PD 1
|
||||
.
|
||||
.TP
|
||||
.B turbo (2-pass uniquement)
|
||||
Accélère énormément la première passe en utilisant des algorithmes plus
|
||||
rapides et en désactivant des options gourmandes en temps processeur.
|
||||
Cela va sans doute diminuer le PSNR global (d'environ 0.01dB) et changer
|
||||
un peu plus le type et le PSNR des trames générées (jusqu'à 0.03dB).
|
||||
.
|
||||
.TP
|
||||
.B aspect=<x/\:y>
|
||||
Stocke le rapport hauteur/\:largeur du film en interne, tout comme les fichiers
|
||||
MPEG.
|
||||
|
@ -153,6 +153,7 @@ static int lavc_param_nssew= 8;
|
||||
static int lavc_param_closed_gop = 0;
|
||||
static int lavc_param_dc_precision = 8;
|
||||
static int lavc_param_threads= 1;
|
||||
static int lavc_param_turbo = 0;
|
||||
|
||||
|
||||
char *lavc_param_acodec = "mp2";
|
||||
@ -302,6 +303,7 @@ m_option_t lavcopts_conf[]={
|
||||
{"qns", &lavc_param_qns, CONF_TYPE_INT, CONF_RANGE, 0, 1000000, NULL},
|
||||
{"nssew", &lavc_param_nssew, CONF_TYPE_INT, CONF_RANGE, 0, 1000000, NULL},
|
||||
{"threads", &lavc_param_threads, CONF_TYPE_INT, CONF_RANGE, 1, 8, NULL},
|
||||
{"turbo", &lavc_param_turbo, CONF_TYPE_FLAG, 0, 0, 1, NULL},
|
||||
{NULL, NULL, 0, 0, 0, 0, NULL}
|
||||
};
|
||||
#endif
|
||||
@ -666,6 +668,30 @@ static int config(struct vf_instance_s* vf,
|
||||
mp_msg(MSGT_MENCODER,MSGL_ERR,"2pass failed: filename=%s\n", passtmpfile);
|
||||
return 0;
|
||||
}
|
||||
if(lavc_param_turbo) {
|
||||
/* uses SAD comparison functions instead of other hungrier */
|
||||
lavc_venc_context->me_pre_cmp = 0;
|
||||
lavc_venc_context->me_cmp = 0;
|
||||
lavc_venc_context->me_sub_cmp = 0;
|
||||
lavc_venc_context->mb_cmp = 2;
|
||||
|
||||
/* Disables diamond motion estimation */
|
||||
lavc_venc_context->pre_dia_size = 0;
|
||||
lavc_venc_context->dia_size = 0;
|
||||
|
||||
lavc_venc_context->quantizer_noise_shaping = 0; // qns=0
|
||||
lavc_venc_context->noise_reduction = 0; // nr=0
|
||||
|
||||
if (lavc_param_mb_decision) {
|
||||
lavc_venc_context->mb_decision = 1; // mbd=0 ("realtime" encoding)
|
||||
}
|
||||
lavc_venc_context->flags &= ~CODEC_FLAG_QPEL;
|
||||
lavc_venc_context->flags &= ~CODEC_FLAG_4MV;
|
||||
lavc_venc_context->flags &= ~CODEC_FLAG_TRELLIS_QUANT;
|
||||
lavc_venc_context->flags &= ~CODEC_FLAG_CBP_RD;
|
||||
lavc_venc_context->flags &= ~CODEC_FLAG_QP_RD;
|
||||
lavc_venc_context->flags &= ~CODEC_FLAG_MV0;
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user