mpv-player / mpv

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

issue playing SDR content in Win11 HDR mode = darker, less vibrant image = (higher energy consumtion) #10027

Closed Andy2244 closed 2 years ago

Andy2244 commented 2 years ago

Important Information

Provide following Information:

Reproduction steps

TV settings set to PC mode and all extra processing disabled

Set Win11 in HDR mode, set "SDR content brightness" settings to 50% or even 100% and play a SDR video with either of those settings all in d3d11 mode via --gpu-api=d3d11:

  1. mpv --d3d11-output-csp=pq --target-prim=bt.2020 --target-trc=pq
  2. mpv --d3d11-output-csp=pq --target-prim=bt.2020 --target-trc=pq --gamut-mapping-mode=clip
  3. mpv --d3d11-output-csp=srgb
  4. mpv --d3d11-output-csp=srgb --icc-profile-auto

Expected behavior

Getting a overall similar image to what mpv produces without Win11 HDR turned on and default mpv settings. The TV will engage HDR (100 backlit) in HDR on mode vs SDR/Cinema mode at 55 backlit profile setting.

Actual behavior

Case 1-3 produces a darker less vivid, less contrast output even with the TV backlit set from 55 in SDR to 100 in HDR mode, which is a net 50-60w increase in energy.

Case 4 looks the closest to default SDR mode, but is still a bit darker (needs --gamma=3), yet still needs 50 more watt to produce the output, which seems tobe a general issue with Win11 HDR mode?

Log file

case1.log case3.log case4.log

Sample files

any SDR file

The main issue stems from mpv's inability to switch HDR mode on/off like other players (Kodi 19, JRMC29, mpc-be, MadVr) so trying to match SDR vs HDR mode for SDR files is a challenge, as noted case 4 would work for me overall, yet that's still with a 50% increased backlit setting, with no real quality gains, so just a waste of energy.

I also tried nearly all of the tone-mapping, tone-mapping-mode, inverse-tone-mapping options with and without target-peak controls. I just cant get a similar bright/vivid output at the same TV backlit settings?

So i'm not sure if this is a general issue with Win11 HDR mode, but is there no way to match the perceived brightness at the same TV backlit settings between SDR->SDR mode and SDR->HDR mode? So i don't just waste 60w for nothing?

PS: The workaround i found is this:

Ofc i wish mpv could do this automatically or produce a similar image in HDR mode.

Andy2244 commented 2 years ago

Now i feel stupid after banging my head for 3 days.

Turns out this is a intel igpu driver issue, all i had todo is increase the "contrast" setting in the intel command center from default 17 (works fine in SDR mode) to 19-20 in HDR mode. This 2-3 extra increase results in a huge bump in overall brightness, which is kinda strange. I assume some sort of signal issue?

Now with this small correction i can set my TV's backlight to 55 in HDR and SDR mode and get a similar overall brightness.

Andy2244 commented 2 years ago

No, what you need to do is change sdr plane luminance slider in hdr.

Thats already at max as noted.

Andy2244 commented 2 years ago

already at max as noted.

It should not be at max. It should be at 100 nits or 203 nits, not that you can know what is the correct number, but 50 or slightly lower is correct.

The issue is if i play any SDR content, while HDR is on in either srgb/pq csp mode with mpv or any other player and compare the overall brightness to what my TV's native player produces at 55 backlit setting, its all way too dark and as stated i need to bump the backlit up to 80-90, which just results in wasting 50-70% more energy for nothing.

The same is also true if i switch HDR mode off, the SDR content with default settings in all players is always way brighter/clearer compared to to HDR on and also matches what my TV natively produces.

So i was at a loss, either increase backlit power by 50% or switch HDR mode on/off manually/via script or just bump SDR brightness in HDR mode...

Andy2244 commented 2 years ago

mhh oki this explains some settings, yes my TV's default HDR modes are all at 100 backlit, yet even the "Night" modes are often way too bright and also just seem to enable the stupid "Light Sensor" or lower the backlit settings.

So the default way without a HTPC would be "HDR/DV mode" at 100 backlit and "Cinema" mode SDR at 55-60 backlit (TV's default). This would be fine yet mpv does not switch HDR on/off like other players, so now i have to work in HDR on mode with all the issues i stated. The main issue is that it makes no sense to watch SDR content with 100 backlit in HDR mode and than reducing the windows brightness to match HDR off mode, since this is a colossal waste of energy...as the backlit still is at 100.

So are mpv users actually watching SDR content in HDR mode with max backlit settings?

from internal apps.

yes and also from Plex on the TV, which uses mpv

Andy2244 commented 2 years ago

Just reopening this since this is still confusing to me on what are "correct" or "expected" settings vs what is "sane".

Andy2244 commented 2 years ago

First of thanks for taking the time to explain all this, forgive if i might come off a bit "snappy" thats not my intention, its just a frustrating week for me getting my new HTPC and the TV to work in a way that's use-able for me.

No one can do it since wddm 2.7. Chrome cannot anymore, madvr (I think) cannot, mpv cannot.

Kodi 19, mpc-be renderer and GameBar all work fine switching HDR windows settings mode on/off.

It is not set at 100. It is set to max at 100. Uou do understand that backlit still has to change to accomponement HDR pq values?

That might be the case, yet i tested with FLAD on/off low/max and several HDR/SDR test files. The actual energy consumption of the TV is only influenced by the actual TV backlit setting, nothing else.

So to reiterate yes i could watch SDR content with windows HDR mode on and default 50 SDR brightness content settings, while the TV is at 100 Backlit setting, since it detects HDR mode. This results in max. possible energy consumption. In contrast switching Win 10 HDR off and watch SDR content switches the TV in "Cinema" mode at 55 backlit and results in much lower energy consumtion, while having the same overall brightness. I measured all this with a powermeter, yet i cant measure nits/overall brightness, so my eyes have todo.

So given those facts, what is your recommendation to-do? I'm kinda at a loss here now...

Andy2244 commented 2 years ago

Then this is a bug in the tv. 100 backlight mode should not cause higher consumption on sdr content. If it does it is HW fault.

Just to make this clear its not higher at 100 backlit, its that playing SDR content requires just a setting of 55 backlit in SDR mode vs a setting of 100 in HDR on mode, to get the same overall brightness at default windows HDR/SDR brightness settings of 40-50.

So you are telling me that your TV uses less energy while playing SDR content in HDR mode, compared to a HDR file at the same backlit 100 settings? This would also mean lowering/increasing the Win10 SDR brightness slider actually changes your TV's energy consumption?

PS: If you don't mind and have a meter can you hook it up and give the values at 0/50/100 windows SDR brightness settings? So i can get a baseline on the energy delta.

haasn commented 2 years ago

So are mpv users actually watching SDR content in HDR mode with max backlit settings?

The answer to this question is probably "mpv users aren't using HDR output modes"

So given those facts, what is your recommendation to-do? I'm kinda at a loss here now...

:shrug: Complain to microsoft? Wait for Linux to support HDR and switch to it? Find a TV that doesn't use 50W more power in HDR mode?

I admit none of these are particularly attractive solutions. I personally vote for just setting your monitor to SDR mode and forgetting HDR exists.

Andy2244 commented 2 years ago

Yeah i ended up scripting my own HDR on/off solution, to solve this issue. Guide here: https://www.reddit.com/r/htpc/comments/tv60gc/win11tipscriptmpv_mpvhdrshimexe_automatic/

mnisius commented 2 years ago

The answer to this question is probably "mpv users aren't using HDR output modes"

That's not true. I do for example.

And let me tell you HDR can be awesome but it does depend a lot an the source material and your display. I have a TV with 1500 nits max peak brightness and hdr is stunning.

I tried a lot of different settings and I can just recommend one thing. Keep your display in SDR mode as a default. Only switch to HDR Mode if you watch HDR content or play HDR Games.

Andy2244 commented 2 years ago

Closing this, its ultimately a Windows problem, not allowing easy access to enable/disable HDR. The whole idea you have to run win10/11 always in HDR mode is crazy, since its just a waste of energy.