[x265] [PATCH] Add CLI option to enable/disable Temporal MVP
Steve Borho
steve at borho.org
Tue Oct 28 01:55:59 CET 2014
On 10/27, Nicolas Morey-Chaisemartin wrote:
> # HG changeset patch
> # User Nicolas Morey-Chaisemartin <nmorey at kalray.eu>
> # Date 1414074865 -7200
> # Thu Oct 23 15:34:25 2014 +0200
>
> Add CLI option to enable/disable Temporal MVP
Ditto, I've queued these changes locally. Will push them after some
quick testing.
> ---
> doc/reST/cli.rst | 7 +++++++
> source/common/param.cpp | 3 +++
> source/x265.cpp | 3 +++
> 3 files changed, 13 insertions(+)
>
> diff --git a/doc/reST/cli.rst b/doc/reST/cli.rst
> index 6b90da8..0ecb77a 100644
> --- a/doc/reST/cli.rst
> +++ b/doc/reST/cli.rst
> @@ -517,6 +517,13 @@ Temporal / motion search options
> The max candidate number is encoded in the SPS and determines the
> bit cost of signaling merge CUs. Default 2
> +.. option:: --temporal-mvp, --no-temporal-mvp
> +
> + Enable temporal motion vector predictors in P and B slices.
> + This enables the use of the motion vector from the collocated block
> + in the previous frame to be used as a predictor. Default is enabled
> +
> +
> Spatial/intra options
> =====================
> diff --git a/source/common/param.cpp b/source/common/param.cpp
> index 4ced165..9d8a4b3 100644
> --- a/source/common/param.cpp
> +++ b/source/common/param.cpp
> @@ -568,6 +568,8 @@ int x265_param_parse(x265_param *p, const char *name, const char *value)
> OPT("rect") p->bEnableRectInter = atobool(value);
> OPT("amp") p->bEnableAMP = atobool(value);
> OPT("max-merge") p->maxNumMergeCand = (uint32_t)atoi(value);
> + OPT("temporal-mvp") p->bEnableTemporalMvp = atobool(value);
> +
> OPT("early-skip") p->bEnableEarlySkip = atobool(value);
> OPT("fast-cbf") p->bEnableCbfFastMode = atobool(value);
> OPT("rdpenalty") p->rdPenalty = atoi(value);
> @@ -1202,6 +1204,7 @@ char *x265_param2string(x265_param *p)
> BOOL(p->bEnableRectInter, "rect");
> BOOL(p->bEnableAMP, "amp");
> s += sprintf(s, " max-merge=%d", p->maxNumMergeCand);
> + BOOL(p->bEnableTemporalMvp, "temporal-mvp");
> BOOL(p->bEnableEarlySkip, "early-skip");
> BOOL(p->bEnableCbfFastMode, "fast-cbf");
> s += sprintf(s, " rdpenalty=%d", p->rdPenalty);
> diff --git a/source/x265.cpp b/source/x265.cpp
> index 76cbcc8..4bdeac8 100644
> --- a/source/x265.cpp
> +++ b/source/x265.cpp
> @@ -104,6 +104,8 @@ static const struct option long_options[] =
> { "subme", required_argument, NULL, 'm' },
> { "merange", required_argument, NULL, 0 },
> { "max-merge", required_argument, NULL, 0 },
> + { "temporal-mvp", no_argument, NULL, 0 },
> + { "no-temporal-mvp", no_argument, NULL, 0 },
> { "rdpenalty", required_argument, NULL, 0 },
> { "no-rect", no_argument, NULL, 0 },
> { "rect", no_argument, NULL, 0 },
> @@ -405,6 +407,7 @@ void CLIOptions::showHelp(x265_param *param)
> H0("-m/--subme <integer> Amount of subpel refinement to perform (0:least .. 7:most). Default %d \n", param->subpelRefine);
> H0(" --merange <integer> Motion search range. Default %d\n", param->searchRange);
> H0(" --max-merge <1..5> Maximum number of merge candidates. Default %d\n", param->maxNumMergeCand);
> + H0(" --[no-]temporal-mvp Enable temporal MV predictors. Default %s\n", OPT(param->bEnableTemporalMvp));
> H0("\nSpatial / intra options:\n");
> H0(" --[no-]strong-intra-smoothing Enable strong intra smoothing for 32x32 blocks. Default %s\n", OPT(param->bEnableStrongIntraSmoothing));
> H0(" --[no-]constrained-intra Constrained intra prediction (use only intra coded reference pixels) Default %s\n", OPT(param->bEnableConstrainedIntra));
> _______________________________________________
> x265-devel mailing list
> x265-devel at videolan.org
> https://mailman.videolan.org/listinfo/x265-devel
--
Steve Borho
More information about the x265-devel
mailing list