Vero 4K HDMI colour space output

Thought I’d report an oddity - and it may well be Kodi/AMLogic related, not Vero 4K specific.

I don’t think UHD content original colour space is being properly handled.

I have a 2160/59.94p 8-bit 4:2:0 Rec 2020 video, and a 2160/50p 10-bit 4:2:0 Rec 709 video.

When I have the Vero 4K in default mode - where 10 bit video is output at 8 bits both videos are played back with Rec 709 colour gamut/space flagged and output 8-bit.

(In this mode 2160/23.976p 10-bit Rec 2020 PQ ST.2084 HDR content is played back as 2160/23.976p 8-bit Rec 2020 PQ ST.2084 HDR - so Rec 2020 is being output in some cases)

When I have the Vero 4K in 10 bit mode - where 10 bit content is not truncated to 8 bit, both files are now replayed with Rec 2020 colour gamut/space flagged.

My HD Fury Vertex confirms this, as do empirical tests on my Sony TV if I manually alter colour space.

It looks as if there is an assumption that all SDR UHD stuff in 8-bit output mode is Rec 709, and that all SDR UHD stuff in 10-bit output mode is Rec 2020, rather than the colour space/gamut of the source file being preserved?

For UHD SDR stuff being shot for broadcast also on HD outlets, it won’t be unusual for Rec 709 to be used to allow a simple downconversion (rather than a colour gamut/space conversion being required) - so Rec 709 2160p stuff will be an issue.

Media Info for two files below :

Menu ID                                  : 61440 (0xF000)
Format                                   : HEVC
Format/Info                              : High Efficiency Video Coding
Format profile                           : Main@L5.1@Main
Codec ID                                 : 36
Width                                    : 3 840 pixels
Height                                   : 2 160 pixels
Display aspect ratio                     : 16:9
Frame rate                               : 59.940 (60000/1001) fps
Color space                              : YUV
Chroma subsampling                       : 4:2:0 (Type 2)
Bit depth                                : 8 bits
Color range                              : Limited
Color primaries                          : BT.2020
Transfer characteristics                 : BT.2020 (10-bit)
Matrix coefficients                      : BT.2020 non-constant
ID                                       : 1
Format                                   : HEVC
Format/Info                              : High Efficiency Video Coding
Format profile                           : Main 10@L5.1@High
Codec ID                                 : V_MPEGH/ISO/HEVC
Width                                    : 3 840 pixels
Height                                   : 2 160 pixels
Display aspect ratio                     : 16:9
Frame rate mode                          : Constant
Frame rate                               : 50.000 fps
Standard                                 : Component
Color space                              : YUV
Chroma subsampling                       : 4:2:0 (Type 2)
Bit depth                                : 10 bits
Default                                  : Yes
Forced                                   : No
Color range                              : Limited
Color primaries                          : BT.709
Transfer characteristics                 : BT.709
Matrix coefficients                      : BT.709

I also have a no-name S905X box running a LibreElec build. I notice similar issues with it.

Indeed.

This is on my list of things to improve; but it could take a bit of time to do so. I’m unsure whether we can resolve this directly from the kernel yet; or whether we’d need to take hints from Kodi to then evaluate the content from user space and inform the kernel of what we would like.

It’s possible we may need to use a library as well to get codec hint details for HDR content as well. Then we expose some sysfs parameters for configuration and use that to control the colour space.

Sam

Yep - it’s all very odd and consistently inconsistent at the moment. (But then it’s outperforming PCs costing a lot, lot more - so we shouldn’t grumble!)

I’ve looked over my notes and a couple of thoughts:

We need to decouple colourspace from bit-depth in the future. In the interim:

  • We could look at putting Vero 4K in 10-bit output from Kodi. The advantage is also that users get a GUI option to control this behaviour. A mode like ‘Auto’ could evaluate hints from the video and set the sysfs parameter only when it makes sense to do so; switching back when playback stops.
  • Patch hdmitx_set_avi_colorimetry(struct hdmi_format_para *para) for AV Infoframe (signalling) and hdmitx_hdmi_dvi_config(struct hdmitx_dev *hdev (tell CSC what we’re doing)
  • AMVECM’s colourspace correction can be improved:
/* bit 0: use source primary,
   bit 1: use display primary,
   bit 2: adjust contrast according to source lumin,
   bit 3: adjust saturation according to source lumin */
uint hdr_flag = (1 << 0) | (1 << 1) | (0 << 2) | (0 << 3);
module_param(hdr_flag, uint, 0664);
MODULE_PARM_DESC(hdr_flag, "\n set hdr_flag\n");

There are a lot of options available via sysfs, but unfortunately documentation is sparse. See vero3-linux/amcsc.c at master · osmc/vero3-linux · GitHub.

There is also the potential to improve HDR → SDR colour saturation (I saw a post on this recently where a user wanted a brighter picture).

Sam

I see there is also 709->2020 and 2020->709 conversion code in there - so you could run with a fixed colourspace and do a conversion (though I don’t think this is happening at the moment)

Feels to me like there are a lot of ways of doing this :

  1. Let user fix a colourspace and then convert non-native content into that space.
  2. Let user select automatic colourspace switching, and output in the same format as the source.

In terms of bit-depth - I don’t think there is anything to gain in dynamically switching output colour depth based on source format. There’s nothing wrong with 8bit content being output as 10bit or 12bit.

PQ ST.2084 HDR->SDR conversion is trickier - there are usually a LOT of user options on UHD Blu-ray players - as there is no ‘right’ way of doing this and to a degree it will depend on how the HDR content has been graded. (Some grades just push the specular highlights into the ‘HDR’ bit, others grade the whole picture brighter - and you need different HDR->SDR approaches for these totally different grading approaches…). There is also likely to be both an EOTF conversion AND a colour-space conversion if you are taking Rec 2020 ST.2084 stuff and converting it to Rec 709 HD (probably mapping to a BT.1886 SDR EOTF now we have an EOTF standard for HD SDR…)

HLG HDR->SDR conversion is a lot easier ;). Just leave it! (Or change Rec 2020->Rec 709 space if you need to)

1 Like

Agreed. We should still likely add an option for this to be configured via the GUI however.

Sam

Some profiles of some sorts have been mentioned by Sam already to be an option that might come to the Vero some time in the future. Would definitely love to see this :+1:t2: 4k HDR bt.2020 doesn’t always look particularly bad on my 1080p SDR bt.709 TV, but it depends highly on the file. Some are just a pain in the eyes - your explanation nails it down pretty well :joy:

My Sony UHD BD player has about 9 different choices for PQ ST.2084 HDR->SDR conversion. Apparently Panasonic players have 30+?

It really massively depends on how the source material has used the greater dynamic range they have to play with.

Contrast Amazon HDR with Netflix HDR if you want to see two totally different approaches… (I’m definitely in the Netflix camp…)

I’m not sure at that point how one could cognitively handle so many comparisons.

Wanted to say about the same :joy: After comparing all the settings for more than an hour, one chooses to not watch the movie because of boredom and exhaustion. :see_no_evil:

Maybe 5-10 profiles with short descriptions as what they might roughly look like would be amazing :+1:t2:

1 Like

I don’t have any problem at all with 30+ choices of HDR->SDR conversion and cognitively differentiating is probably not more difficult than taking an eye test. (That said - I work in broadcast and am used to critically evaluating picture material, and work with people who grade for a living)

What you DO need though is some material that allows you to make that decision - and as that changes movie-by-movie, and scene-by-scene, that’s where it gets complex.

I was so disappointed with the way HDR UHD Blu-rays were displayed on an SDR display (they looked a lot worse than SDR 1080p Blu-rays) I ended up replacing the TV…

This of course is a different situation than most are in… You know what to look for and also maybe more what to expect with certain settings and source materials.

It has to be a compromise… Of enough profiles to choose from, but not too many to avoid long setting sessions. But yeah, the problem would be to give users an idea what to expect from the different profiles. That’s what I meant by: short description. But if that is enough to know what to expect from a profile… I’m not sure :joy:

If this doesn’t get resolved soon so that all 4K content is plug-and-play, it’s likely to greatly hurt sales of media. It won’t stop the production of 4K content, or sales of 4K displays, but if users feel they have to spend time picking from even 5 different options to get the “right” picture, they likely won’t pay for the content.

I don’t see it being a huge issue in the long term. How many SDR UHD TVs do you see on sale now?

As almost all new UHD displays are HDR as standard - the HDR->SDR conversion issue will not be a huge one.

Sorry to push, but you‘re talking about this GUI button option till December! I bought a Vero 4K because you make commercial that ut will be updated constantly. This error is reported now several times in different threads. And always there‘s written, there will come an update shortly!?!?!?
Friendly speaking give an official statement with an ETA for this fix or you‘re sfraid to sell less boxes? Everybody is buying the Vero 4K because of 4K capability but in this case it‘s nit working correctly! Same as HDR flickering!!!

Except that for those people in properties where there are multiple TV’s with Kodi clients, and upgrading them all to 4K isn’t really practical, having the ability to convert HDR to SDR is rather helpful as it avoids having to double-up titles on the server.

1 Like

Or for those who choose to wait with a 4K TV/projector as long as the specification/format chaos isn’t solved - especially the HDR format f***-up :joy: I’m not willing to buy a very expensive TV that delivers stunning blacks like my Panasonic Plasma does not knowing what HDR format(s) will be the standard the next years. The Vero 4k already gives me the ability to play basically any video format on that screen and if that would include a good adjustable HDR->SDR conversion, I’d be more than happy!

I think there’s been some confusion here.

In December we mentioned that we would some GUI based options for configuring HDR. That’s still on the cards. It was mentioned that we would work on it in December; rather than us completing and including it in December. There were some improvements in the last update with regards to automatic switching however.

As you’ll see, there’s also some discussion about the approaches that can be taken here.

4K HDR is quite new and the idea is to keep refining it over a series of updates; rather than try and sell you a new device every six months. There are a number of setups to accommodate. If you’d like to do some testing in advance, then let me know.

Thanks for your patience.

Sam

Yes - I can definitely see this as an issue, albeit a relatively minor one (as you’d need a 4K compatible player solution running HD to your HD displays, whereas quite a few people will just stick with HD players and dual-content sourcing). Every UHD Blu-ray I’ve bought has come with an HD Blu-ray pretty much - so the content doesn’t cost extra to buy - just to store.

I think ‘format chaos’ is pushing it a bit.

HDR10 is the core PQ ST.2084 HDR format that all the major streaming players (Netflix, Amazon etc.) support and that is used on all UHD HDR Blu-rays. I don’t think I’ve seen an HDR TV that doesn’t support it. (*)

HDR10+ and Dolby Vision are optional improvements to this - both using PQ and ST.2084, but sending additional dynamic metadata to aid optimised display on HDR displays that aren’t capable of showing the full dynamic range of the source (i.e. most TVs currently on sale)

In streaming terms, all the DV outlets also provide HDR10 content. In UHD Blu-ray terms - DV Blu-rays all include an HDR10 core - with just an additional enhancement stream for DV compatible devices. (**)

HLG is the odd-one out. That is aimed at broadcasters - who have a very different set of requirements to movie makers and OTT streaming operators. It’s huge advantage is that it is backwards compatible with SDR displays in the same colour space, and doesn’t require any metadata other than ‘I’m in HLG’…

(*) Yes - some projector manufacturers have dropped the ball with proper HDR support. (It’s like 3D all over again…)
(**) Yes - some display manufacturers have moved the ‘DV over HDMI’ goal posts - moving from tunnelled metadata to metadata carried using official dynamic metadata HDMI signalling (now such a thing exists)

If you want a good HDR10 and HLG TV - it’s pretty easy to find one. It will look great if it’s a great TV.

If you have golden-eyes and a very good viewing environment - then DV and HDR10+ may give you an improvement, and you have to negotiate the issues that they introduce for sure.

This is not that minor to me. The industry (or least some studios) tries (/try) to force the UHD format on people by also limiting 3D audio to 4K discs. In that matter, many Blu-rays that you get along with a UHD-Blu-ray are just worthless to me… Being able to play all video formats (also UHD rips with 3D audio that don’t have to be converted first) is a major plus of the Vero 4k for me and - I believe - also quite some other users here.

I’m aware that HDR10 is the core of all HDR formats except HLG. What I meant with chaos is which formats like DV and HDR10+ will be supported in the future and more importantly: When will we see the first TVs supporting all formats?
Before that, honestly, it’s a chaos for consumers. The logic behind the formats I can understand. But that doesn’t help me, if I’d like to buy a decent TV supporting the industry standard formats (and not just that one or that one).


But honestly, why are we discussing whether HDR->SDR conversion is a minor or major issue for many or just some? Sam already said he’ll be looking into improvements here and over time there were quite a lot of users asking for this… There seems to be some demand for it. :wink: