Dolby Vision - VS10 Engine on Ugoos AM6+

**** Testing *****

@Jonke @liquidion @GreyFoxRTX

Hi all,

I created a build to enable non DoVi content to run through the Dolby Vision VS10 Engine for use on tv-led DoVi TV.

I just got this up and running and have tested that it triggers DoVi for:

SDR8
SDR10
HDR10

I don’t think it will trigger for HDR10+ (though it can be configured to - but using just the HDR10 layer), not yet tried this as all my HDR10+ I have converted to p8 anyway.

This is obviously not reference and just for those interested to see what it does and if they like it.

I have not explored any options at this point, there are what look like PQ options in the code but it is not clear to me if they are really meant for TV interactions i.e. SoC embedded in TV, or also relevant to STB.

If any one has experience with other VS10 solution out there would appreciate feedback on if this looks the same / different etc.

This is a Test build so expect bugs - there is an obvious one returning to the menu the colours will be broken, but can still navigate around.

(can work around by making sure setting dolby_vision_policy back to 1 before stopping the video - see options below)

This is the tar built on the latest code base for 21 ng.


Edit: Version removed - please see new version in later post.


Would highly recommend keeping it separate on another micro-sd-card away from any normal build you are using.

It should act like a normal build from start up and you need to use the following terminal (ssh) commands to enable VS10 for other content:

echo 0 > /sys/module/amdolby_vision/parameters/dolby_vision_policy

to revert back use:

echo 1 > /sys/module/amdolby_vision/parameters/dolby_vision_policy

You should be able to do this whilst the video is running - if your TV is like mine it will take a while to switch modes.

I also think you will need to do the following:

echo 13 > /sys/module/amdolby_vision/parameters/dolby_vision_flags

I run with this in my normal build as well - need more testing on the impact there but I think it will have impact here (again need to test).

Please try it out, let me know the feedback!

And again this is not reference it is just for those interested.

4 Likes

Just tested it out of curiosity with some of the sdr shows I have. Star Trek TNG and Friends. Last week I was trying RTX HDR and had some reference in my mind to compare.

This is just my opinion but I didn’t like VS10 either. Whites get blown up and grain gets very distracting. And overall increased contrast is tiring to my eyes.
Surprisingly though it was very similar to RTX HDR, though depending on the content the results do vary a lot and sometimes it might be preferable.

My TV (Philips 808) switched instantly so it was easy to compare. I didn’t test hdr stuff, is any improvement or difference is expected? (asking for people with experience.)

Edit: With hdr10+ it only triggers when I first open the file but I get a black screen. Also I hope I didn’t sound negative, these developments are exciting.

thanks for checking, just wanted to confirm if you used
echo 13 > /sys/module/amdolby_vision/parameters/dolby_vision_flags

Forgot to mention, yes I did.

@cpm Great news !
Anyway to test it with playerled ? My usecase would be playerled ->projector

At present the player led is coming up purple and green - i.e. a colour space conversion is not happening somewhere, i.e. I think it is sending IPT422 though the standard YUV422 connection in player led, not sure on this one would need to look more.

1 Like

Sorry, it seems I have rebooted in the meantime or something. With 13, hdr10+ plays with incorrect colors and without dynamic metadata.

Will compare this against my Zidoo tonight. I think this should look better though since Zidoo has issues with tv-led.

This is a great development. VS10 does make certain SD & HDR10/10+ content look better.

Do SDR content not seem desaturated to you? Colors are muted here with VS10.

@cpm

I forgot, what was the significance of flag 13 vs 5?

13 will follow the Sink (TV) Luminance rather than some predefined.

FLAG_USE_SINK_MIN_MAX 0x08

As unknown what the VS10 actually does in tv-led (i.e. fake again or letting the tv manage - as not sure there is much scope for there being changing metadata here) so would put this on to have “more” correct luminance - incase processing in box, for those using player led I would also put this on - in fact I always have it set from the autostart.sh

I also see the colours are different in SDR > DV.
I see highlights in SDR are now getting the HDR treatment SDR > DV.

Another setting was being set oddly at least for me which may be causing some issues:

1st Parameter:

dolby_vision_policy

Controls if we are going to follow the source (material) or the sink (tv)

0 (Sink) - for follow the TV (i.e. DV TV then lets use VS10 to switch into DV).
1 (Source) - for follow the Material (i.e. material and TV both DV then DV, if material HDR and TV can do HDR then HDR etc.) <<< This should pretty much behave like the existing out of the box setup.

There is a 2nd parameter:

dolby_vision_hdr10_policy

HDR_BY_DV_F_SINK   0x1	1	
HDR_BY_DV_F_SRC    0x2	2
HDRP_BY_DV         0x4	4
HLG_BY_DV_F_SINK   0x8	8
HLG_BY_DV_F_SRC    0x10	16
SDR_BY_DV_F_SINK   0x20	32	
SDR_BY_DV_F_SRC    0x40	64

Which has finer control on top of the first parmeter:

Can try:

echo 0 > /sys/module/amdolby_vision/parameters/dolby_vision_policy
echo 45 > /sys/module/amdolby_vision/parameters/dolby_vision_hdr10_policy

For SDR8,SDR10,HDR10,HDR10+ (Though this will be plain HDR10 then map to DV - i.e. ignores the + metadata)

or

echo 0 > /sys/module/amdolby_vision/parameters/dolby_vision_policy
echo 41 > /sys/module/amdolby_vision/parameters/dolby_vision_hdr10_policy

For SDR8,SDR10,HDR10, hopefully for this HDR10+ will then process as per “normal” for your setup.

Rebooting should bring you back to baseline if you get lost somewhere.

Note sure on the behaviour of HLG - need to find some HLG content to try.

This is pretty cool. Definitely the VS10 look. Whites, reflections, gleams, etc look overbright. I compensate a bit by lowering brightness on the TV, but it’s more an illusion than anything.

Colors look though. I really do think the color conversion into bt2020 is quite good for SD content.

Is there a way to take screenshots of video on the Am6b+? I have tried before and only got a scrambled image.

Would love to compare against the Zidoo side by side.

(can work around by making sure setting dolby_vision_policy back to 1 before stopping the video - see options below)

Zidoo’s workaround for this is to render everything, including the GUI with VS10, if it is activated. A bit brute force, but I wonder if they do this because otherwise they would need more elegant handling to only trigger VS10 on playback.

EDIT: Noticed a black screen for some HDR content, Planet Earth III. Maybe color bit issue, not sure if Portisch fix was incorporated into nightlies yet.

Not clear where in the graphics pipeline that is obtaining the image, I think it is grabbing from the output of the decoder (and depending on timing of the capture you get the scrambled image),

If you search the forums there is a setting which can use which may give you a clean image after a few attempts at capture. But I think not really what you want.

Sidetrack: For p7 would not be sure it captured the the two layers of DV combined maybe just BL.

Also note the Kodi side re-overlays the UI interface to get the final composite png with both elements, i.e. it is not a capture of what is being sent down the HDMI, can consider the case where there is metadata data (RPU) being sent to the TV - would need to capture from the TV Image to see the impact of that.

Yep don’t think it made it into this build.

Tried out some BBC HDR HLG content - Planet Earth III (co-incidentally).

It also triggers DV with DV policy set to Sink.

Content looks extremely close - at first blush - maybe something different in the banding but the content is well produced so hard to tell from this.
Edit: tried some other HLG HDR and the colours are quite a bit different.


Also found out something strange:

Some BluRay releases in SDR10 with bt2020 colour space.
Are now triggering my TV for HLG HDR! - pretty sure that was not happening before - and not sure why.

Must be co-incidence but all are B/W JPN titles:

  • Godzilla (1954)
  • Seven Samuri (1954)
  • Ikiru (1952)

@Jonke

Actually it may still be OK if your projector does not do DV.
If up for it please give it a go.


I think it is a “problem” with my TV because it does do DV, and for player led CE Kodi is forcing the mode to player led - (i.e. LL DV vs Std DV)

In my case doing SDR8 → DV: it checks the capabilities of the Sink (TV/Projector) and sees it is DV so just automatically tries to do IPT Tunnel (tv-led) which I think is then clashing with the forcing of LL DV (player led) setting resulting in the wrong colours.

(Maybe no one ever tested for the combination before - possibly can work around that in code).

In your case though assuming your Projector is not DV.
Doing SDR8 → DV; it would check the capabilities of the Sink (Projector) and see it cannot do DV and then covert to YUV422 - i.e. you Projector see’s it like an HDR10 signal.

Fingers crossed it would just work!

For clarity, tv-led does not appear to require IPT. The code and documents appear to allow limited and full YUV, limited and full IPT (didn’t even know limited IPT was a thing), and RGB.

I have tested YUV, IPT, and whatever is in that test pattern (maybe HLG?) and they all appear to work for me / have a different look on the same image data. Makes you wonder why the profile 8 captures were clearly in IPT

Yeah right, just using as a short-hand though probably should be more explicit.

Not yet seen anything that actually utilises the other CS modes or alternative transmission of the RPU, I am thinking everyone just wants to keep max compatibility.

On the subject of p8 I saw something else odd just for p8 - sometimes it would send the OSD1 (UI) very dark to the point it cannot be read - even though the luminance feeding the DV control looked all the same (checked the dv debug logging), p7, p5 have all looked fine never seen that issue.

If I find anything interesting will be sure to let you know.

Any way to get VS10 to engage/disengage on video start/stop?

Would be amazing to have a menu option to toggle VS10: 1) SDR and HDR content, 2) SDR content only, 3) off. Activate on start/stop depending on 1 or 2. If possible, then hopefully can incorporate into mainline, the capability itself is worthwhile to have.

p7, p5 have all looked fine never seen that issue.

No difference with native player if VS10 is engaged while playing tv-led, p5 or p7 mel/fel DV content?

Yes will need code change.

Yeah I think all that is very possible, just changing the parameters from the kodi side based on the content to be played.

No difference playing p5 or p7 or p8 - (the p8 note was before this change - i see UI going dark sometimes - not sure why.) Fundamentally it is the same Engine does dv contents and does mapping to dv content - i.e. it was always on for dv doing the dv thing.

[Caveat on the sink min and max - most people do not have that on - not tested the impact here yet to see if needed - for me I think it is better on anyway - it was in my original tv-led build - removed to keep things to minimum footprint of change as not needed in that scenario]

Not done any Kodi UI coding and will be having less time to spend on this over the coming weeks [any dev wants to step in and implement - it is just changing the parameters listed here] - one reason I rushed this out yesterday wanted to get this out there for people to try first and some feedback, but I think a lot is possible over time.

Still a few other things to check on the luminance and PQ front as well!