HDR-issue with 2017 LG OLEDs or with the Vero?

I’ve been having an issue where some HDR-movies when played via my Vero 4K (latest October update) appear too dim, while the same file looks much better when played through the internal player on my LG C7.

At first I thought it’s the missing MaxCLL/MaxFALL information Vero doesn’t pass yet to the TV (which will probably be ignored by the TV anyway). But running this HDR10 contrast pattern:

gives me weird results. The internal player flashes up until around 74%, which is correct since it’s the 1000nit mark and it’s a 1000nit mastered video. However, that same video played through the Vero 4k flashes to around 87/88%.

Read setup and test details

Exact same settings on both inputs. Vero outputs limited color range, TV’s HDMI black level is set to “Low”. For the majority of movies they look absolutely identical on the Vero and the internal player (even with somewhat similar HDR10 metadata from dim movies).

I can’t figure out if HDR10-over-HDMI is just broken on the 2017 LG OLEDs or if my Vero is somehow misconfigured. I tried resetting presets, I did disconnect my AVR for a direct connection, I double and triple checked ALL the picture sub-settings are identical (especially Dynamic Contrast is Off aka Dynamic Tone Mapping disabled). My AVR correctly reports BT.2020 YCbCr, HDR, 10bit, 24Hz. I also tried the 422 option in the Vero settings. I haven’t messed with the system files (like forcing 8bit colors etc.).

People that have an HDR TV (especially LG OLED 2017) connected to their Vero 4K(+):
can you do me a favor and download this test pattern (it’s only 15mb) and play it through your Vero to see if it flashes past 75% and report back (including your TV’s model)?

User results so far
Samsung QLED: 2 out of 2 tonemapping correctly
LG 2018+ OLEDs: 2/3
LG 2017 OLEDs: 0/5
Panasonic: 1/2

For now, we pass through 1000 as a fallback for luminance data.
In our next kernel, we now have metadata passthrough working fully, and that will be with users soon.

Sam

1 Like

Fallback for what? If the max. mastering display luminance is 4000, Vero will send it as 1000? Wasn’t that already fixed like a year ago?

Edit: Holy… I just borrowed my friend’s FireTV stick with Kodi on it. No dim HDR videos and proper 2000nit contrast pattern. So it really was the Vero’s fault all along, literally just signaling 1000cd/m² for everything. I remember this was a topic many months ago and I felt like this was already fixed. But apparently not.

Guys seriously though. This device has been for sale for over 2 years and has been marketed with HDR10 support. I remember even a year ago how much of a pain it was to get the device to properly switch to 10bit, to not have banding in HDR etc. I thought all of this is finally sorted out, especially the most basic HDR10 metadata to function properly.

That doesn’t sound right.
I assume you tested on the same HDMI port, with same HDMI cable too?

The fallback fix is for files lacking metadata / issues where SEI parser cannot extract this data. The AML default was completely off; so it was adjusted.

This is also concerning: do 2017 LG OLEDs ignore this data?

Absolutely. Literally just unplugged the Vero and put the FireTV in there. Double checked the settings to make sure there’s no mismatch between black levels etc.

I don’t know what exactly is going on.
4000nits movies usually all have a MaxCLL value, I went through some of them and most seem better on the FireTV. Some are brighter, for some the specular highlights are no longer clipped (those with MaxCLL > MaxDisplay).
The 2000cd/m² MaxDisplay contrast test pattern however has nothing to do with MaxCLL (I stripped away MaxCLL and MaxFALL from the test file to make sure) and it shows up fine on the FireTV while it doesn’t on the Vero 4K.
I know the LG OLEDs fall back to 4000 MaxDisplay if that information is missing. Seeing how your fallback is 1000 and the pattern not clipping to 1000 but to 4000, I’m assuming the TV either receives a 4000 value or maybe a corrupted value and falls back to 4000? Because 2000 seems to work when sent from the FireTV stick (Kodi v18.3).

Disregard that. I just tested this by stripping away all MaxCLL/MaxFALL data from a test clip for a file with max display luminance 4000cd/m² and a MaxCLL of 557cd/m² and played it through the FireTV stick. The video was much dimmer with the missing MaxCLL, so it appears the TV does take it into account.
This must’ve been fixed in the meantime by LG because when the 2018 series was released, multiple tests showed how the 2018 models had improved HDR tonemapping because they map to MaxCLL instead of MaxDisplay if MaxCLL is smaller than MaxDisplay, something the other TV manufacturers have been doing all along apparently. I even googled this issue this week and never found anyone talking of a fix. Thank god they did fix it though.

Edit:
I just did some further testing and it seems like my Vero 4K is not signalling MaxDisplay correctly.
A clip that I know is too dark on the Vero 4K has display luminance 0.0050-4000cd/m² and MaxCLL 557cd/m² and is brighter on the FireTV. I replaced some of the HDR metadata (also in the SEI messages by the GOPs):

Case 1: MaxCLL and MaxFALL removed, MaxDisplayLuminance set to 1000 instead of 4000
It’s still as dark on the Vero 4K as the original file. It’s now also too dim on the FireTV.

Case 2: MaxCLL and MaxFALL removed, MaxDisplayLuminance set to 557 instead of 4000. 557 was the original MaxCLL. This should trick the TV into tonemapping it to the original MaxCLL value.
It’s still dark on the Vero 4K but it is correctly tone mapped on the FireTV.

So it’s not (just) an issue of missing MaxCLL, it appears my Vero 4K does not properly signal display luminance data. Unless there’s another explanation I’m missing. The 2000nits contrast pattern seems to confirm this though. Maybe it’s my device?

Edit-2:
huh. Even the 1000nit contrast pattern overshoots to 4000nits on my Vero 4K. I’m gonna try to fully reset my device and see if it fixes the issue, maybe there’s some weird setting somewhere on the device from the past that is breaking proper HDR metadata signaling.

Didn’t know about that bit of information.
Let’s pick this up again with the next kernel

Sam

I’ve edited my previous post with an appendix to show this doesn’t seem to be just an MaxCLL issue.

Okay, so I called my friend who has a somewhat new Vero 4K+ which he never modified via SSH, he also has a 2017 LG OLED. His 1000nits test pattern also gets incorrectly tone mapped to 4000nits. So either both our boxes don’t send any HDR10 metadata or it’s somehow not being read correctly by these LG TVs. In both cases LG OLEDs use a fallback of 4000nits.
Kodi on FireTV works without issues.

Is there any type of debug log or something I can create or do some further testing? Everything I watch is basically tonemapped to 4000nits on the Vero 4K.

Maybe someone with another HDR TV can download the pattern from the first link and check if his Vero 4K(+) sends the HDR10 data correctly.

I tested this video on my LG C7 OLED, playing through Vero 4K+. Clipping point is at around 80%.

Thank you! 80-81% sounds about right. Just to confirm, for HDR10 you’re using either the Cinema or the technicolor-preset, right?

I use Standard for HDR. Switching to Technicolor increases percentage to around 84%

1 Like

Oh, nevermind then. “Standard” uses dynamic contrast, that’s why it actually just clipped your highlights.
Here’s the 1000nit pattern to confirm, this should make the issue more apparent on your screen. It should never ever go above the 75%-mark (1000nits), unless your TV is tone mapping it to 4000cd/m² instead of the correct 1000cd/m².

Static metadata is static metadata. There shouldn’t be anything dynamic in its adjustment…

What? “Standard” is a preset that has the TV’s “Dynamic Contrast”-function activated, which not only changes the contrast but also enables Dynamic Tone Mapping. The technicolor- and the Cinema-presets are the most accurate ones out of the box. “Dynamic Contrast” has always clipped highlights and crushed blacks, ever since LCD’s introduced that function. That’s why his test pattern appeared correct at first glance, simply because the upper bars were clipped by the TV. Testing with the 1000nits pattern should show bars flashing past the upper limit even with Dynamic Contrast turned on.

Not sure what you’re refering to. The fact is, three TVs from three different people don’t receive/process static metadata properly from the Vero 4K(+).

Which Fire TV are you testing with? Because there are known Fire TV models that do not pass through correct metadata either. Hopefully you’re testing on something that does (ie MediaTek) based versions

Sam

FireTV 4k stick (MTK8695). Like I described above in my tests, it seems to correctly pass MaxCLL and MaxDisplayLuminance, when I switched and swapped and changed these values for testing.

Even the 1000, 2000 and 4000 test patterns show up correctly when played through the FireTV Kodi 18.3, but the same three always get tone mapped to 4000 nits when played through the Vero 4K.

All movie scenes and test patterns I’ve tested (regardless of MaxDisplayLuminance or MaxCLL) look the same on the internal player as they do on the FireTV Kodi. But on Vero 4K it completely ignores MaxCLL (obviously since it’s not implemented yet) and always seems to tonemap everything to 4000nits, regardless what the actual MaxDisplayLuminance value is in all the test files and movies.

Maybe some other users can chime in. I’ve updated my initial post and replaced the 2000nits test pattern with the 1000nits one which is less confusing to test. It’d be interesting to know if this is somehow a unique issue with LG’s OLEDs for whatever reason.

I downloaded that file and it flashes to 74% on my C8.
I use technicolor expert with a few modifications.
If I play the file with the internal player it looks the same to me.
The internal player is on technicolor expert without any modifications.
Honestly, if I stare at it long enough it starts to look like it’s hiting 90% but I think that’s just eye fatigue or something.
I recorded it with my cell phone to see if I could capture what my eyes were perceiving above 75% but when I play it back I don’t see anything.

1 Like

That invalidates my testing then. Can we have a consistent clip / consensus on what to test with?

Please let us know what files you want tested with and I can post analyser output.

Sam

So I ran some tests through a Vertex. On both of those test clips, Vero is signalling 1000nit max luminance. MaxCLL and MaxFALL are zero. So if bars higher than that are showing it must surely be an issue with the display?

1 Like

Sorry. I think the 1000nits one is more obvious and we should use that one.
I wish I could provide more test data or debug information, please let me know what I can do to help. I will try to completely erase my Vero 4K and install a fresh new image on it, to make absolutely sure it has nothing to do with some setting (which coincidentally all three of us 2017 users have set). Completely reinstalled and even tried an image from the December 2018 update, all default settings except for resolution switching. Seems like the issue has been around with these models all along.

Is it possible the data is somehow being misinterpreted by the TV or some sort of HDR-handshake fails and the TV just falls back to 4000nits or something? I don’t know if this makes any sense to test, but is there anyway you can test another Kodi device (e.g. FireTV) and compare if the bytes in the data are exactly the same and in the same order/position? (for a file that has missing MaxCLL/MaxFALL of course)
Also: “on both of those test clips”. I think you tested the same clip twice. I’m sorry for creating some confusion throughout the thread. I removed the 2000nit pattern from my first post and replaced it with the 1000nit one to make it easier to distinguish from 4000nit tonemapping. If you indeed downloaded the first clip before I edited the post, then it should’ve shown up as 2000nit on your Vortex for one of the test clips.

If you mean an issue with 2017 models, yes it seems that way. It’d be interesting if more people (especially with 2017 models) could test this.

Seems the 2018 models do not have that issue.

Yeah, I know what you mean. If you hold your palm in front of your eyes so that it covers all the bars before 75%, you can see the upper bars are actually not flashing :slight_smile: With incorrect 4000nit tonemapping however, the bars will be flashing gray very clearly though, it’d be pretty obvious.