[x265] [PATCH] presets: Updating presets to improve coding efficiency and speed

Deepthi Nandakumar deepthi at multicorewareinc.com
Tue Dec 22 03:08:34 CET 2015


Yes, you're right, Tom. Also this patch will not apply at the current tip,
since Tom committed a patch to presets.rst yesterday.

On Tue, Dec 22, 2015 at 7:30 AM, Tom Vaughan <
tom.vaughan at multicorewareinc.com> wrote:

> Pradeep,
> In presets.rst you put 2 rows in for limit-refs.  The 2nd one should be
> limit-modes.
>
> +| limit-modes          |    0      |     0     |    0     |   0    |  0
> |    0   |  1   |   1    |    1     |    0    |
>
> Also, I don't see limit-modes changed for slow, slower and veryslow.
>
> Please double-check that everything matches our planned changes before we
> commit this.
>
> Tom
>
> -----Original Message-----
> From: x265-devel [mailto:x265-devel-bounces at videolan.org] On Behalf Of
> Pradeep Ramachandran
> Sent: Monday, December 21, 2015 12:42 AM
> To: x265-devel at videolan.org
> Subject: [x265] [PATCH] presets: Updating presets to improve coding
> efficiency and speed
>
> # HG changeset patch
> # User Pradeep Ramachandran <pradeep at multicorewareinc.com> # Date
> 1450687279 -19800
> #      Mon Dec 21 14:11:19 2015 +0530
> # Node ID df793ec188d2cb6ea9dc886296ccb4c7448e4523
> # Parent  0315c0c389c99185cbaa73a0e8acfe9ef60dd817
> presets: Updating presets to improve  coding efficiency and speed.
>
> This commit results in vast improvements in encoding speed and efficiency
> for several presests. Most important features are increasing # references
> for some presets and enabling limit-refs and limit-mode to limit impact on
> speed.
>
> diff -r 0315c0c389c9 -r df793ec188d2 doc/reST/cli.rst
> --- a/doc/reST/cli.rst  Thu Dec 17 23:27:58 2015 +0530
> +++ b/doc/reST/cli.rst  Mon Dec 21 14:11:19 2015 +0530
> @@ -685,7 +685,7 @@
>         (within your decoder level limits) if you enable one or
>         both of these flags.
>
> -       This feature is EXPERIMENTAL and functional at all RD levels.
> +       Default 3.
>
>  .. option:: --limit-modes, --no-limit-modes
>
> diff -r 0315c0c389c9 -r df793ec188d2 doc/reST/presets.rst
> --- a/doc/reST/presets.rst      Thu Dec 17 23:27:58 2015 +0530
> +++ b/doc/reST/presets.rst      Mon Dec 21 14:11:19 2015 +0530
> @@ -22,7 +22,7 @@
>
> +---------------------+-----------+-----------+----------+--------+------+
> --------+------+--------+----------+---------+
>  |                     | ultrafast | superfast | veryfast | faster | fast
> | medium | slow | slower | veryslow | placebo |
>
> +=====================+===========+===========+==========+========+======+
> ========+======+========+==========+=========+
> -| ctu                 |   32      |    32     |   32     |  64    |  64
> |   64   |  64  |  64    |   64     |   64    |
> +| ctu                 |   32      |    32     |   64     |  64    |  64
> |   64   |  64  |  64    |   64     |   64    |
>
> +---------------------+-----------+-----------+----------+--------+------+
> --------+------+--------+----------+---------+
>  | min-cu-size         |   16      |     8     |    8     |   8    |   8
> |    8   |   8  |   8    |    8     |    8    |
>
> +---------------------+-----------+-----------+----------+--------+------+
> --------+------+--------+----------+---------+
> @@ -36,7 +36,9 @@
>
> +---------------------+-----------+-----------+----------+--------+------+
> --------+------+--------+----------+---------+
>  | scenecut            |    0      |    40     |   40     |  40    |  40
> |   40   |  40  |   40   |   40     |   40    |
>
> +---------------------+-----------+-----------+----------+--------+------+
> --------+------+--------+----------+---------+
> -| ref                 |    1      |     1     |    1     |   1    |  2
> |    3   |  3   |   3    |    5     |    5    |
> +| ref                 |    1      |     1     |    2     |   2    |  3
> |    3   |  4   |   4    |    5     |    5    |
> ++---------------------+-----------+-----------+----------+--------+------
> +--------+------+--------+----------+---------+
> +| limit-refs          |    0      |     0     |    3     |   3    |  3
> |    3   |  3   |   2    |    1     |    0    |
>
> +---------------------+-----------+-----------+----------+--------+------+
> --------+------+--------+----------+---------+
>  | me                  |   dia     |   hex     |   hex    |  hex   | hex
> |   hex  | star |  star  |   star   |   star  |
>
> +---------------------+-----------+-----------+----------+--------+------+
> --------+------+--------+----------+---------+
> @@ -48,6 +50,8 @@
>
> +---------------------+-----------+-----------+----------+--------+------+
> --------+------+--------+----------+---------+
>  | amp                 |    0      |     0     |    0     |   0    |  0
> |    0   |  0   |   1    |    1     |    1    |
>
> +---------------------+-----------+-----------+----------+--------+------+
> --------+------+--------+----------+---------+
> +| limit-refs          |    0      |     0     |    0     |   0    |  0
> |    0   |  1   |   1    |    1     |    0    |
> ++---------------------+-----------+-----------+----------+--------+------
> +--------+------+--------+----------+---------+
>  | max-merge           |    2      |     2     |    2     |   2    |  2
> |    2   |  3   |   3    |    4     |    5    |
>
> +---------------------+-----------+-----------+----------+--------+------+
> --------+------+--------+----------+---------+
>  | early-skip          |    1      |     1     |    1     |   1    |  0
> |    0   |  0   |   0    |    0     |    0    |
> @@ -66,7 +70,7 @@
>
> +---------------------+-----------+-----------+----------+--------+------+
> --------+------+--------+----------+---------+
>  | aq-mode             |    0      |     0     |    1     |   1    |  1
> |    1   |  1   |   1    |    1     |    1    |
>
> +---------------------+-----------+-----------+----------+--------+------+
> --------+------+--------+----------+---------+
> -| cuTree              |    0      |     0     |    0     |   0    |  1
> |    1   |  1   |   1    |    1     |    1    |
> +| cuTree              |    1      |     1     |    1     |   1    |  1
> |    1   |  1   |   1    |    1     |    1    |
>
> +---------------------+-----------+-----------+----------+--------+------+
> --------+------+--------+----------+---------+
>  | rdLevel             |    2      |     2     |    2     |   2    |  2
> |    3   |  4   |   6    |    6     |    6    |
>
> +---------------------+-----------+-----------+----------+--------+------+
> --------+------+--------+----------+---------+
> diff -r 0315c0c389c9 -r df793ec188d2 source/common/param.cpp
> --- a/source/common/param.cpp   Thu Dec 17 23:27:58 2015 +0530
> +++ b/source/common/param.cpp   Mon Dec 21 14:11:19 2015 +0530
> @@ -159,7 +159,7 @@
>      param->subpelRefine = 2;
>      param->searchRange = 57;
>      param->maxNumMergeCand = 2;
> -    param->limitReferences = 0;
> +    param->limitReferences = 3;
>      param->limitModes = 0;
>      param->bEnableWeightedPred = 1;
>      param->bEnableWeightedBiPred = 0;
> @@ -279,9 +279,9 @@
>              param->bEnableWeightedPred = 0;
>              param->rdLevel = 2;
>              param->maxNumReferences = 1;
> +            param->limitReferences = 0;
>              param->rc.aqStrength = 0.0;
>              param->rc.aqMode = X265_AQ_NONE;
> -            param->rc.cuTree = 0;
>              param->rc.qgSize = 32;
>              param->bEnableFastIntra = 1;
>          }
> @@ -296,9 +296,9 @@
>              param->bEnableWeightedPred = 0;
>              param->rdLevel = 2;
>              param->maxNumReferences = 1;
> +            param->limitReferences = 0;
>              param->rc.aqStrength = 0.0;
>              param->rc.aqMode = X265_AQ_NONE;
> -            param->rc.cuTree = 0;
>              param->rc.qgSize = 32;
>              param->bEnableSAO = 0;
>              param->bEnableFastIntra = 1; @@ -306,13 +306,11 @@
>          else if (!strcmp(preset, "veryfast"))
>          {
>              param->lookaheadDepth = 15;
> -            param->maxCUSize = 32;
>              param->bFrameAdaptive = 0;
>              param->subpelRefine = 1;
>              param->bEnableEarlySkip = 1;
>              param->rdLevel = 2;
> -            param->maxNumReferences = 1;
> -            param->rc.cuTree = 0;
> +            param->maxNumReferences = 2;
>              param->rc.qgSize = 32;
>              param->bEnableFastIntra = 1;
>          }
> @@ -322,8 +320,7 @@
>              param->bFrameAdaptive = 0;
>              param->bEnableEarlySkip = 1;
>              param->rdLevel = 2;
> -            param->maxNumReferences = 1;
> -            param->rc.cuTree = 0;
> +            param->maxNumReferences = 2;
>              param->bEnableFastIntra = 1;
>          }
>          else if (!strcmp(preset, "fast")) @@ -331,7 +328,7 @@
>              param->lookaheadDepth = 15;
>              param->bFrameAdaptive = 0;
>              param->rdLevel = 2;
> -            param->maxNumReferences = 2;
> +            param->maxNumReferences = 3;
>              param->bEnableFastIntra = 1;
>          }
>          else if (!strcmp(preset, "medium")) @@ -348,6 +345,7 @@
>              param->subpelRefine = 3;
>              param->maxNumMergeCand = 3;
>              param->searchMethod = X265_STAR_SEARCH;
> +            param->maxNumReferences = 4;
>              param->lookaheadSlices = 4; // limit parallelism as already
> enough work exists
>          }
>          else if (!strcmp(preset, "slower")) @@ -365,6 +363,8 @@
>              param->subpelRefine = 3;
>              param->maxNumMergeCand = 3;
>              param->searchMethod = X265_STAR_SEARCH;
> +            param->maxNumReferences = 4;
> +            param->limitReferences = 2;
>              param->bIntraInBFrames = 1;
>              param->lookaheadSlices = 4; // limit parallelism as already
> enough work exists
>          }
> @@ -384,6 +384,7 @@
>              param->maxNumMergeCand = 4;
>              param->searchMethod = X265_STAR_SEARCH;
>              param->maxNumReferences = 5;
> +            param->limitReferences = 1;
>              param->bIntraInBFrames = 1;
>              param->lookaheadSlices = 0; // disabled for best quality
>          }
> @@ -405,6 +406,7 @@
>              param->searchMethod = X265_STAR_SEARCH;
>              param->bEnableTransformSkip = 1;
>              param->maxNumReferences = 5;
> +            param->limitReferences = 0;
>              param->rc.bEnableSlowFirstPass = 1;
>              param->bIntraInBFrames = 1;
>              param->lookaheadSlices = 0; // disabled for best quality
> _______________________________________________
> x265-devel mailing list
> x265-devel at videolan.org
> https://mailman.videolan.org/listinfo/x265-devel
> _______________________________________________
> x265-devel mailing list
> x265-devel at videolan.org
> https://mailman.videolan.org/listinfo/x265-devel
>



-- 
Deepthi Nandakumar
Engineering Manager, x265
Multicoreware, Inc
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mailman.videolan.org/pipermail/x265-devel/attachments/20151222/d8ee53c3/attachment-0001.html>


More information about the x265-devel mailing list