mirror of
https://github.com/mpv-player/mpv.git
synced 2025-12-28 05:33:14 +00:00
vo_opengl: implement more HDR tonemapping algorithms
This is now a configurable option, with tunable parameters. I got inspiration for these algorithms off wikipedia. "simple" seems to work pretty well, but not well enough to make it a reasonable default. Some other notable candidates: - Local functions (e.g. based on local contrast or gradient) - Clamp with soft knee (linear up to a point) - Mapping in CIE L*Ch. Map L smoothly, clamp C and h. - Color appearance models These will have to be implemented some other time. Note that the parameter "peak_src" to pass_tone_map should, in principle, be auto-detected from the SEI information of the source file where available. This will also have to be implemented in a later commit.
This commit is contained in:
@@ -1057,9 +1057,38 @@ Available video output drivers are:
|
||||
|
||||
``target-brightness=<1..100000>``
|
||||
Specifies the display's approximate brightness in cd/m^2. When playing
|
||||
HDR content, video colors will be scaled and clipped to this
|
||||
brightness. The default of 250 cd/m^2 corresponds to a typical consumer
|
||||
display.
|
||||
HDR content, video colors will be tone mapped to this target brightness
|
||||
using the algorithm specified by ``hdr-tone-mapping``. The default of
|
||||
250 cd/m^2 corresponds to a typical consumer display.
|
||||
|
||||
``hdr-tone-mapping=<value>``
|
||||
Specifies the algorithm used for tone-mapping HDR images onto the
|
||||
target display. Valid values are:
|
||||
|
||||
clip
|
||||
Hard-clip any out-of-range values (default)
|
||||
simple
|
||||
Very simple continuous curve. Preserves dynamic range and peak but
|
||||
uses nonlinear contrast.
|
||||
gamma
|
||||
Fits a logarithmic transfer between the tone curves.
|
||||
linear
|
||||
Linearly stretches the entire reference gamut to (a linear multiple
|
||||
of) the display.
|
||||
|
||||
``tone-mapping-param=<value>``
|
||||
Set tone mapping parameters. Ignored if the tone mapping algorithm is
|
||||
not tunable. This affects the following tone mapping algorithms:
|
||||
|
||||
simple
|
||||
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 as when clipping.
|
||||
gamma
|
||||
Specifies the exponent of the function. Defaults to 1.8.
|
||||
linear
|
||||
Specifies the scale factor to use while stretching. Defaults to
|
||||
1.0.
|
||||
|
||||
``icc-profile=<file>``
|
||||
Load an ICC profile and use it to transform video RGB to screen output.
|
||||
|
||||
Reference in New Issue
Block a user