mpv-player / mpv

🎥 Command line video player
https://mpv.io
Other
28.4k stars 2.91k forks source link

dithering introduces distracting pattern/dots in shadows/dark areas #14319

Open geextahslex opened 5 months ago

geextahslex commented 5 months ago

mpv Information

mpv 0.38.0 Copyright © 2000-2024 mpv/MPlayer/mplayer2 projects
 built on Apr 20 2024 00:22:40
libplacebo version: v7.349.0 (v6.338.0-124-gd0eb997-dirty)
FFmpeg version: N-114897-gbba996d6c
FFmpeg library versions:
   libavutil       59.15.100
   libavcodec      61.5.103
   libavformat     61.3.100
   libswscale      8.2.100
   libavfilter     10.2.101
   libswresample   5.2.100

Other Information

Reproduction Steps

watch 4k 10bit source on 8bit sdr monitor/tv with dither-depth=8 dither=fruit and watch at dark areas/shadows

Expected Behavior

a dithering solution that doesn't deteriorate the image with this weird pattern/dots in shadow/dark areas

Actual Behavior

dithering introduces this weird pattern/dots in shadow/dark areas which in itself prevents from ever having any real black on screen.

Log File

mpv --gpu-debug output.txt mpv --log-file output x.txt

Sample Files

Screenshots, boosted luminance for demonstration purpose.

dither apocalypse dither inferno zuzuz zuzuz2 pattern zoomed in zoomed dither off dither off 11 dither on dither on 111

I carefully read all instruction and confirm that I did the following:

kasper93 commented 5 months ago

This is the second time you have reported a duplicate issue. You won't accomplish anything this way, except getting banned.

Duplicate of #14297 and #13881.

geextahslex commented 5 months ago

you said:

You need to state what is your problem and provide full reproduction steps with config and all the shaders you use.

So I did

kasper93 commented 5 months ago

Yes, thank you, but you can use one open issue. No need to split it into multiple ones. I've actually since then seen the issue, it some cases completely black areas have erroneously added dithering noise.

As for all other cases dithering by design adds noise to make it perceptually better looking. It is not meant to be overexposed, because you will see the dithering patters, this is expected.

geextahslex commented 5 months ago

This wasn't intended, but I didn't know where to put this topic, is it an issue, a feature request or discussion?

Couldn't @haasn's suggestion be implemented?

We solved a similar problem for deband grain, which turns itself off near black to avoid exactly this noise. Probably should do the same for dithering.

This would be even more important for OLED users

It is not meant to be overexposed

I do see it in normal conditions

haasn commented 5 months ago

Couldn't @haasn's suggestion be implemented?

Upon further reflection, this is already the case - we do disable the dither pattern the closer we get to true 0. The problem here is that the image is not true black, at least not after tone- and gamut-mapping.

This would be even more important for OLED users

As an OLED user, I disagree, because I do not see the dither pattern. It only seems like a problem for people using very low-quality non-calibrated low contrast displays, no?

geextahslex commented 5 months ago

Okay I guess it is what it is. Maybe in the future there will be a better or alternative solution to this.

kasper93 commented 2 months ago

Opened as more complete description of #13881