summaryrefslogtreecommitdiffstats
path: root/DOCS
diff options
context:
space:
mode:
authorNiklas Haas <git@haasn.xyz>2017-06-09 09:16:06 +0200
committerRicardo Constantino <wiiaboo@gmail.com>2017-06-09 11:27:28 +0100
commitd8a3b10f45eb10fb34ce9da3a9a76e3bd8644e3d (patch)
tree80186e11d21707072751d95e055f44da7a36f159 /DOCS
parent30cd963b25520089f56417eb2f946c98afeef073 (diff)
downloadmpv-d8a3b10f45eb10fb34ce9da3a9a76e3bd8644e3d.tar.bz2
mpv-d8a3b10f45eb10fb34ce9da3a9a76e3bd8644e3d.tar.xz
vo_opengl: add new HDR tone mapping algorithm
I call it `mobius` because apparently the form f(x) = (cx+a)/(dx+b) is called a Möbius transform, which is the algorithm this is based on. In the extremes it becomes `reinhard` (param=0.0 and `clip` (param=1.0), smoothly transitioning between the two depending on the parameter. This is a useful tone mapping algorithm since the tunable mobius transform allows the user to decide the trade-off between color accuracy and detail preservation on a continuous scale. The default of 0.3 is already far more accurate than `reinhard` while also being reasonably good at preserving highlights, without suffering from the overall brightness drop and color distortion of `hable`. For these reasons, make this the new default. Also expand and improve the documentation for these tone mapping functions.
Diffstat (limited to 'DOCS')
-rw-r--r--DOCS/man/options.rst28
1 files changed, 24 insertions, 4 deletions
diff --git a/DOCS/man/options.rst b/DOCS/man/options.rst
index 7c8f602045..4d2be6ad66 100644
--- a/DOCS/man/options.rst
+++ b/DOCS/man/options.rst
@@ -4645,13 +4645,27 @@ The following video options are currently all specific to ``--vo=opengl`` and
display. Valid values are:
clip
- Hard-clip any out-of-range values.
+ Hard-clip any out-of-range values. Use this when you care about
+ perfect color accuracy for in-range values at the cost of completely
+ distorting out-of-range values. Not generally recommended.
+ mobius
+ Generalization of Reinhard to a Möbius transform with linear section.
+ Smoothly maps out-of-range values while retaining contrast and colors
+ for in-range material as much as possible. Use this when you care about
+ color accuracy more than detail preservation. This is somewhere in
+ between ``clip`` and ``reinhard``, depending on the value of
+ ``--tone-mapping-param``. (default)
reinhard
Reinhard tone mapping algorithm. Very simple continuous curve.
- Preserves dynamic range and peak but uses nonlinear contrast.
+ Preserves overall image brightness but uses nonlinear contrast, which
+ results in flattening of details and degradation in color accuracy.
hable
- Similar to ``reinhard`` but preserves dark contrast better (slightly
- sigmoidal). Developed by John Hable for use in video games. (default)
+ Similar to ``reinhard`` but preserves both dark and bright details
+ better (slightly sigmoidal), at the cost of slightly darkening
+ everything. Developed by John Hable for use in video games. Use this
+ when you care about detail preservation more than color/brightness
+ accuracy. This is roughly equivalent to
+ ``--hdr-tone-mapping=reinhard --tone-mapping-param=0.24``.
gamma
Fits a logarithmic transfer between the tone curves.
linear
@@ -4662,6 +4676,12 @@ The following video options are currently all specific to ``--vo=opengl`` and
Set tone mapping parameters. Ignored if the tone mapping algorithm is not
tunable. This affects the following tone mapping algorithms:
+ mobius
+ Specifies the transition point from linear to mobius transform. Every
+ value below this point is guaranteed to be mapped 1:1. The higher the
+ value, the more accurate the result will be, at the cost of losing
+ bright details. Defaults to 0.3, which due to the steep initial slope
+ still preserves in-range colors fairly accurately.
reinhard
Specifies the local contrast coefficient at the display peak. Defaults
to 0.5, which means that in-gamut values will be about half as bright