From 703f1588803eaa428e09c0e5547b26c0fff476a7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Kacper=20Michaj=C5=82ow?= Date: Tue, 12 Sep 2023 23:25:20 +0200 Subject: [PATCH] builtin.conf: modernize internal profiles The goal is to provide simple to understand quality/performance level profiles for the users. Instead of default and gpu-hq profile. There main profiles were added: - fast: can run on any hardware - default: balanced profile between quality and performance - high-quality: out of the box high quality experience. Intended mostly for dGPU. Summary of three profiles, including default one: [fast] scale=bilinear cscale=bilinear (implicit) dscale=bilinear dither=no correct-downscaling=no linear-downscaling=no sigmoid-upscaling=no hdr-compute-peak=no [default] (implicit mpv defaults) scale=lanczos cscale=lanczos dscale=mitchell dither-depth=auto correct-downscaling=yes linear-downscaling=yes sigmoid-upscaling=yes hdr-compute-peak=yes [high-quality] (inherits default options) scale=ewa_lanczossharp cscale=ewa_lanczossharp (implicit) hdr-peak-percentile=99.995 hdr-contrast-recovery=0.30 allow-delayed-peak-detect=no deband=yes scaler-lut-size=8 --- DOCS/interface-changes.rst | 2 ++ DOCS/man/options.rst | 26 ++++++++++++-------------- etc/builtin.conf | 24 ++++++++++++++++-------- video/out/gpu/video.c | 5 ++--- 4 files changed, 32 insertions(+), 25 deletions(-) diff --git a/DOCS/interface-changes.rst b/DOCS/interface-changes.rst index 1c230fb074..bf50912534 100644 --- a/DOCS/interface-changes.rst +++ b/DOCS/interface-changes.rst @@ -66,6 +66,8 @@ Interface changes - enable `--correct-downscaling`, `--linear-downscaling`, `--sigmoid-upscaling` - `--cscale` defaults to `--scale` if not defined - change `--tscale` default to `oversample` + - change `--dither-depth` to `auto` + - deprecate `--profile=gpu-hq`, add `--profile=` --- mpv 0.36.0 --- - add `--target-contrast` - Target luminance value is now also applied when ICC profile is used. diff --git a/DOCS/man/options.rst b/DOCS/man/options.rst index 10370df1e5..e16739964b 100644 --- a/DOCS/man/options.rst +++ b/DOCS/man/options.rst @@ -5252,17 +5252,16 @@ them. The filter function to use when upscaling video. ``bilinear`` - Bilinear hardware texture filtering (fastest, very low quality). This - is the default for compatibility reasons. + Bilinear hardware texture filtering (fastest, very low quality). This is + the default when using the ``fast`` profile. ``spline36`` - Mid quality and speed. This is the default when using ``gpu-hq``. + Mid quality and speed. ``lanczos`` - Lanczos scaling. Provides mid quality and speed. Generally worse than - ``spline36``, but it results in a slightly sharper image which is good - for some content types. The number of taps can be controlled with - ``scale-radius``, but is best left unchanged. + Lanczos scaling. Provides good balance between quality and performance. + This is the default for ``scale``. The number of taps can be controlled + with ``scale-radius``, but is best left unchanged. (This filter is an alias for ``sinc``-windowed ``sinc``) @@ -5275,8 +5274,8 @@ them. (This filter is an alias for ``jinc``-windowed ``jinc``) ``ewa_lanczossharp`` - A slightly sharpened version of ewa_lanczos. If your hardware can run - it, this is probably what you should use by default. + A slightly sharpened version of ewa_lanczos. This is the default when + using the ``high-quality`` profile. ``ewa_lanczos4sharpest`` Very sharp scaler, but also slightly slower than ``ewa_lanczossharp``. @@ -5287,7 +5286,7 @@ them. ``mitchell`` Mitchell-Netravali. The ``B`` and ``C`` parameters can be set with ``--scale-param1`` and ``--scale-param2``. This filter is very good at - downscaling (see ``--dscale``). + downscaling. This is the default for ``--dscale``. ``catmull_rom`` Catmull-Rom. A Cubic filter in the same vein as ``mitchell``, where @@ -5318,8 +5317,7 @@ them. the filter implied by ``--scale`` will be applied. ``--dscale=`` - Like ``--scale``, but apply these filters on downscaling instead. If this - option is unset, the filter implied by ``--scale`` will be applied. + Like ``--scale``, but apply these filters on downscaling instead. ``--tscale=`` The filter used for interpolating the temporal axis (frames). This is only @@ -5445,7 +5443,7 @@ them. better than without it) since it will extend the size to match only the milder of the scale factors between the axes. - Note: this option is ignored when using bilinear downscaling (the default). + Note: this option is ignored when using bilinear downscaling with ``--vo=gpu``. ``--linear-downscaling`` Scale in linear light when downscaling. It should only be used with a @@ -5528,7 +5526,7 @@ them. might be slower or cause latency issues. ``--dither-depth=`` - Set dither target depth to N. Default: no. + Set dither target depth to N. Default: auto. no Disable any dithering done by mpv. diff --git a/etc/builtin.conf b/etc/builtin.conf index 26a3ed32c1..6655a1256a 100644 --- a/etc/builtin.conf +++ b/etc/builtin.conf @@ -46,18 +46,26 @@ vlang= alang= slang= -[gpu-hq] -scale=spline36 -cscale=spline36 -dscale=mitchell -dither-depth=auto +[fast] +scale=bilinear +dscale=bilinear +dither=no +correct-downscaling=no +linear-downscaling=no +sigmoid-upscaling=no +hdr-compute-peak=no + +[high-quality] +scale=ewa_lanczossharp hdr-peak-percentile=99.995 hdr-contrast-recovery=0.30 allow-delayed-peak-detect=no -correct-downscaling=yes -linear-downscaling=yes -sigmoid-upscaling=yes deband=yes +scaler-lut-size=8 + +# Deprecated alias +[gpu-hq] +profile=high-quality [low-latency] audio-buffer=0 # minimize extra audio buffer (can lead to dropouts) diff --git a/video/out/gpu/video.c b/video/out/gpu/video.c index 9ed82b2b46..8618e8c6ef 100644 --- a/video/out/gpu/video.c +++ b/video/out/gpu/video.c @@ -295,7 +295,6 @@ struct gl_video { static const struct gl_video_opts gl_video_opts_def = { .dither_algo = DITHER_FRUIT, - .dither_depth = -1, .dither_size = 6, .temporal_dither_period = 1, .error_diffusion = "sierra-lite", @@ -303,9 +302,9 @@ static const struct gl_video_opts gl_video_opts_def = { .sigmoid_center = 0.75, .sigmoid_slope = 6.5, .scaler = { - {{"bilinear", .params={NAN, NAN}}, {.params = {NAN, NAN}}, + {{"lanczos", .params={NAN, NAN}}, {.params = {NAN, NAN}}, .cutoff = 0.001}, // scale - {{NULL, .params={NAN, NAN}}, {.params = {NAN, NAN}}, + {{"mitchell", .params={NAN, NAN}}, {.params = {NAN, NAN}}, .cutoff = 0.001}, // dscale {{NULL, .params={NAN, NAN}}, {.params = {NAN, NAN}}, .cutoff = 0.001}, // cscale