Dynamic conversion of HDR10+ SEI to DV P8 NAL

Hi, currently doing the vs10 tests. Found a glitch, CEAM when converting to SDR from HDR(DV) incorrectly compresses the color space, it turns out to be larger than bt709.
Dune players for example compress more correctly, almost do not go beyond bt709.
Can this be corrected?
ceam hdr to sdr


dune 8k hdr to sdr

ceam dv to sdr

dune 8k dv to sdr

Don’t know, just enabling the functionality in the kernel, maybe a later kernel does a better job.

Latest cpm version T6A with fix for VS10 HDR10 to DV for 3840x2160 @ 59.94 (Plus probably other corner cases)

Should I use 2.1.1 or 2.1 as a baseline before apply CPM fixes?

2.1.1 for latest @cpm version T6A.

1 Like

Another version from cpm T6A2 with all of the 4.9-21.2 updates.

Ok. I’ve got it working now. I removed the Yamaha out of the path, swapped cables, etc and that didn’t work. The fix seemed to be to run the GUI in 1080p mode! Now experimenting to see which is the best setting.

Good news. Enjoy your device. Interesting that I run my GUI at 4K 60Hz without any issues.

@OCEFDA perhaps you can help me here: Right now I have everything setup: Latest Tar6A2 update from CPM running on my Cube v2. Since I’m targeting my JVC RS 500 projector, I want to do the following:

  1. Use LLDV since the projector is not DV compatible for any DV source, Leave HDR/SDR intact.
    For that, I’m using Player Led(HDR) / On Demand settings. I’m also defining the max nits according to the custom HDR curve I have on my projector. All good. (I can see the EDID being generated in the UI as I choose different max nits)

  2. Never set the HDR flag - even when outputting LLDV or HDR movies. That’s because this JVC projector auto-engage a poor HDR curve when it finds the HDR flag. Until now, I relied on HD Fury to remove the HDR flag so I can force my own customized HDR curve on the projector. Is there a way to do the same with the HDR Infoframe settings, so I can unplug my HD Fury from the video chain?

Thanks!

Unfortunate I do not think so, the full HDR InfoFrame Metadata has the EOTF bytes (what is being called the HDR flag) but in the case of this specific implementation it does not. It only has the “Static Metadata Type 1” portion thus you cannot control the EOTF. The EOTF bytes are being controlled by cpm’s code.

I do not have a JVC projector but I heard that you can turn HDR off, if so I am not sure if this would resolve your issue or not?

I don’t want to be off topic but look for comments on JVC, edit, zidoo amone of: “Markswift2003” surely you will find documentation on how to set HDfury Vertex2 for JVC. That said you can use the same strings to set AM6B + by CPM. In case you don’t find anything, I can send you some PDF documents (but how can I have your email?) with the values ​​to set on hdfury written by Markswift2003 a few years ago.
Personally I abandoned JVC because its policy of spending more every year to have a little more has bored me.

I developed the HDR InfoFrame Metadata tab in the spreadsheet that generates the payload for cpm’s version (as cpm asked me if I could do it). Unfortunately, you cannot use the same string as you referenced between HD Fury and cpm’s payload string since they are different. The main reason as I mentioned, is that the string for the payload on cpm’s version only has the “Static Metadata Type 1” portion and not the full HDR InfoFrame Metadata structure as HD Fury. The second that is less important/meaningful but more obvious is that HD Fury puts “:” between every byte and the cpm’s version does not have those “:”

1 Like

I see. It’s a bit of pain - the JVC RS500 will automatically kick in the terrible default HDR curve and I have to manually change it back. And rinse-repeat every time a new video starts.

I will keep the HDFury in the chain to address this issue.

Turns out I set the UI resolution to be slightly higher than 4K, which seems to have caused this.

There is one “glitch” that I discovered today, using your T62A version (maybe it was present before, but didn’t noticed it):
With system fully operational I wanted to transfer it to another, faster, uSD card. First made a full CoreElec backup, then on new uSD card installed the same 21.1.1 -ng nightly and restored my full CE backup.
To my surprise, your part was not restored; everything was perfectly restored except your changes. Had to run again your T6A2 update to get the system to the state on my new uSD card as it is on the old one.
Don’t know why is that, because full backup to full restore works with all “regular” CE versions…

1 Like

Not sure on the ins and outs of the backups i.e. does the backup include all the binary/executable of the system or just the configuration/databases etc.

I would think it does not include the binary/exe element and hence need an installed version first before restore can be done.

The “update” are really replacing all the binary/exe elements of the system - just not the initial layout / foundation which allows it to run on the h/w like the partitioning etc. which is done with an install. i.e. the updates are not patching specific elements it is complete replacement.

So that would make sense you need to update on top of the install and restore of the backup.

How did you make your CE backup?

With ceemmc -x it should move everything to the new card.

@OCEFDA still thinking about the JVC Projector case: Right now I only have the option of Player Led (HDR) or VS10, since my projector is not DV compatible. However, if I can send Player Led (LL-DV), then my problem is solved - since I will be able to use my custom HDR curve with no automatic change to the crappy JVC standard HDR one. (That’s what I use today with a different solution).

Is there a way to allow me selecting Player Led (LL-DV) without adding HDFury in the chain and lie to CoreElect about my LLDV capabilities?

Also, when I use Player Ledb(HDR) - am I correct to assume that LL-DV dynamic tone mapping is still occurring, just the output signal is flagged as HDR for the display compatibility?

Here is my understanding and cpm can jump in if I got anything wrong.

The DV “Type” selection (e.g., Player-Led (HDR) is based on what cpm’s software reads from the sink (display) EDID. So it only shows what your sink EDID supports. In your case since you projector only support HDR10 and SDR it will only show Player-Led (HDR) and VS10 only. As far as I know besides putting a HD Fury device on the chain there is no other way through cpm’s settings to allow Player-Led (DV-LL) (LLDV) in your JVC projector’s case.

Yes, when you use any of the Player-Led selection it will use LLDV. To not use LLDV and still have DV you would have to have a sink (display) that does Std-DV (TV-Led) and select that option on the “Type” field. In your case that would not work because you projector does not support Std-DV also (few projectors on the market do).

One option for you is to use the VS10 Only option and set everything to SDR. This will send all types of signals (DV, HDR, etc…) converted by the VS10 engine to SDR (no HDR flag). Unfortunately in this case I think it will also be converted to BT.709. I never used the VS10 engine to convert to SDR so not sure how it looks visually.

Thanks. That’s what I was afraid of. Yes, VS10 is not a good option because of the gamut conversion - CPM already confirmed that. I was hoping to find a way to force LLDV despite of what CoreElec reads from my EDID and remove one device from my chain, but I guess I will have to keep it for now. @cpm anything else you can think of?