summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authoriive <iive@b3059339-0415-0410-9bf9-f77b7e298cf2>2004-09-22 10:26:22 +0000
committeriive <iive@b3059339-0415-0410-9bf9-f77b7e298cf2>2004-09-22 10:26:22 +0000
commit295d8be1cb9c2f72da2b3bdb170c2fb5099f32f1 (patch)
treeaec6e2b0f5b66ab9434fe64d54ab101ce3cedf82
parent521d2d5f46ddad3ca2c71a7bfc0ff8d7f44867bd (diff)
downloadmpv-295d8be1cb9c2f72da2b3bdb170c2fb5099f32f1.tar.bz2
mpv-295d8be1cb9c2f72da2b3bdb170c2fb5099f32f1.tar.xz
add support for subpel quality refinement option in x264.
patch by Jeff Clagg git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@13432 b3059339-0415-0410-9bf9-f77b7e298cf2
-rw-r--r--DOCS/man/en/mplayer.121
-rw-r--r--libmpcodecs/ve_x264.c3
2 files changed, 23 insertions, 1 deletions
diff --git a/DOCS/man/en/mplayer.1 b/DOCS/man/en/mplayer.1
index 7ca96c0df6..d77cfe9cc0 100644
--- a/DOCS/man/en/mplayer.1
+++ b/DOCS/man/en/mplayer.1
@@ -6832,7 +6832,7 @@ Enable 2-pass mode.
The first pass saves statistics.
.
.TP
-.B qcompress=<0\-1>
+.B qcomp=<0\-1>
quantizer compression (default: 0.6).
This affects the ratecontrol: a lower value makes the
bitrate more constant, while a higher value makes the quantization parameter
@@ -6868,6 +6868,25 @@ Adjust the amount of logging info printed to the screen.
.REss
.
.TP
+.B subq=<0\-5>
+Adjust subpel refinement quality.
+This parameter controls quality versus speed tradeoffs involved in the motion
+estimation decision process.
+.RSs
+0: halfpel only
+.br
+1: 1 iteration of qpel on the winning candidate (default)
+.br
+2: 2 iterations of qpel on the winning candidate
+.br
+3: halfpel on all MB types, qpel on the winner
+.br
+4: qpel on all
+.br
+5: more iterations of qpel
+.REss
+.
+.TP
.B psnr\ \ \
Print signal-to-noise ratio statistics.
.
diff --git a/libmpcodecs/ve_x264.c b/libmpcodecs/ve_x264.c
index 5eb924abb3..240e0836ec 100644
--- a/libmpcodecs/ve_x264.c
+++ b/libmpcodecs/ve_x264.c
@@ -82,6 +82,7 @@ static int pass = 0;
static float qcomp = 0.6;
static float qblur = 0.5;
static char *rc_eq = "(tex^qComp)*(avgTex^(1-qComp))";
+static int subq = 1;
static int psnr = 0;
static int log_level = 2;
@@ -110,6 +111,7 @@ m_option_t x264encopts_conf[] = {
{"rc_eq", &rc_eq, CONF_TYPE_STRING, 0, 0, 0, NULL},
{"qcomp", &qcomp, CONF_TYPE_FLOAT, CONF_RANGE, 0, 1, NULL},
{"qblur", &qblur, CONF_TYPE_FLOAT, CONF_RANGE, 0, 99, NULL},
+ {"subq", &subq, CONF_TYPE_INT, CONF_RANGE, 0, 5, NULL},
{"psnr", &psnr, CONF_TYPE_FLAG, 0, 0, 1, NULL},
{"log", &log_level, CONF_TYPE_INT, CONF_RANGE, -1, 3, NULL},
{NULL, NULL, 0, 0, 0, 0, NULL}
@@ -144,6 +146,7 @@ static int config(struct vf_instance_s* vf, int width, int height, int d_width,
mod->param.rc.psz_rc_eq = rc_eq;
mod->param.rc.f_qcompress = qcomp;
mod->param.rc.f_qblur = qblur;
+ mod->param.analyse.i_subpel_refine = subq;
mod->param.rc.psz_stat_out = passtmpfile;
mod->param.rc.psz_stat_in = passtmpfile;
if((pass & 2) && bitrate <= 0)