summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--DOCS/man/en/mplayer.19
-rwxr-xr-xconfigure2
-rw-r--r--libmpcodecs/ve_x264.c4
3 files changed, 14 insertions, 1 deletions
diff --git a/DOCS/man/en/mplayer.1 b/DOCS/man/en/mplayer.1
index fe82ff8d3c..673ca13340 100644
--- a/DOCS/man/en/mplayer.1
+++ b/DOCS/man/en/mplayer.1
@@ -9086,6 +9086,15 @@ This usually improves speed at no cost, but it can sometimes produce
artifacts in areas with no details, like sky.
.
.TP
+.B (no)dct_decimate
+Eliminate dct blocks in P-frames containing only a small single coefficient
+(default: enabled).
+This will remove some details, so it will save bits that can be spent
+again on other frames, hopefully raising overall subjective quality.
+If you are compressing non-anime content with a high target bitrate, you
+may want to disable this to preserve as much detail as possible.
+.
+.TP
.B nr=<0\-100000>
Noise reduction, 0 means disabled.
100\-1000 is a useful range for typical content, but you may want to turn it
diff --git a/configure b/configure
index 1a070d0eb0..207e94441e 100755
--- a/configure
+++ b/configure
@@ -6358,7 +6358,7 @@ echocheck "x264"
cat > $TMPC << EOF
#include <inttypes.h>
#include <x264.h>
-#if X264_BUILD < 45
+#if X264_BUILD < 46
#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; }
diff --git a/libmpcodecs/ve_x264.c b/libmpcodecs/ve_x264.c
index c8ad1fdeca..16e3c98627 100644
--- a/libmpcodecs/ve_x264.c
+++ b/libmpcodecs/ve_x264.c
@@ -104,6 +104,7 @@ static int me_method = 2;
static int me_range = 16;
static int trellis = 1;
static int fast_pskip = 1;
+static int dct_decimate = 1;
static int noise_reduction = 0;
static int threads = 1;
static int level_idc = 51;
@@ -192,6 +193,8 @@ m_option_t x264encopts_conf[] = {
{"trellis", &trellis, CONF_TYPE_INT, CONF_RANGE, 0, 2, NULL},
{"fast_pskip", &fast_pskip, CONF_TYPE_FLAG, 0, 0, 1, NULL},
{"nofast_pskip", &fast_pskip, CONF_TYPE_FLAG, 0, 0, 0, NULL},
+ {"dct_decimate", &dct_decimate, CONF_TYPE_FLAG, 0, 0, 1, NULL},
+ {"nodct_decimate", &dct_decimate, CONF_TYPE_FLAG, 0, 0, 0, NULL},
{"nr", &noise_reduction, CONF_TYPE_INT, CONF_RANGE, 0, 100000, NULL},
{"level_idc", &level_idc, CONF_TYPE_INT, CONF_RANGE, 10, 51, NULL},
{"threads", &threads, CONF_TYPE_INT, CONF_RANGE, 1, 4, NULL},
@@ -303,6 +306,7 @@ static int config(struct vf_instance_s* vf, int width, int height, int d_width,
mod->param.analyse.b_mixed_references = mixed_references;
mod->param.analyse.i_trellis = trellis;
mod->param.analyse.b_fast_pskip = fast_pskip;
+ mod->param.analyse.b_dct_decimate = dct_decimate;
mod->param.analyse.i_noise_reduction = noise_reduction;
mod->param.analyse.b_bframe_rdo = bframe_rdo;