[x265] [PATCH] presets: Updating presets to improve coding efficiency and speed
Tom Vaughan
tom.vaughan at multicorewareinc.com
Tue Dec 22 05:29:35 CET 2015
Yes, I was trying to get all the columns to be visible in our online
documentation of presets. I’m getting frustrated with readthedocs.org, and
.rst files. Restructured text documentation was a big improvement over
what we were doing before, and it allows us to manage the documentation
with our source control (allowing anyone to contribute changes as a
patch). But there are serious limitations to reST as a markup language.
Tom
*From:* x265-devel [mailto:x265-devel-bounces at videolan.org] *On Behalf
Of *Deepthi
Nandakumar
*Sent:* Monday, December 21, 2015 6:09 PM
*To:* Development for x265
*Subject:* Re: [x265] [PATCH] presets: Updating presets to improve coding
efficiency and speed
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/20151221/61441c01/attachment-0001.html>
More information about the x265-devel
mailing list