Playback of HDR(+) @25FPS leads to banding & 50Hz

Hello everyone,
when playing back specific 4k 25FPS HDR and HDR+ video files, I notice severe banding in grayish scenes (e.g. a cloudy scandinavian sky). Playing back the same file via the internal TV media player yields a clear picture without banding. In both cases, the TV recognizes the HDR content (indicated via a “HDR” popup in the top right corner).

Here is my setup:

  • TV is a LG C8
  • Playback device is a Vero4K+ running OSMC / Kodi 19.4 (4.9.269-14-osmc #1 SMP PREEMPT Tue Sep 27 16:10:40 UTC 2022)
  • Vero4K+ is directly connected to the TV

Now, playing back a file with these video characteristics…

ID                                       : 1
Format                                   : HEVC
Format/Info                              : High Efficiency Video Coding
Format profile                           : Main 10@L5@Main
HDR format                               : SMPTE ST 2094 App 4, Version 1, HDR10+ Profile B compatible
Codec ID                                 : V_MPEGH/ISO/HEVC
Duration                                 : 1 h 39 min
Bit rate                                 : 14.5 Mb/s
Width                                    : 3 840 pixels
Height                                   : 2 160 pixels
Display aspect ratio                     : 16:9
Frame rate mode                          : Constant
Frame rate                               : 25.000 FPS
Color space                              : YUV
Chroma subsampling                       : 4:2:0
Bit depth                                : 10 bits
Bits/(Pixel*Frame)                       : 0.070
Stream size                              : 10.1 GiB (94%)
Default                                  : Yes
Forced                                   : No
Color range                              : Limited
Color primaries                          : BT.2020
Transfer characteristics                 : PQ
Matrix coefficients                      : BT.2020 non-constant
Mastering display color primaries        : Display P3
Mastering display luminance              : min: 0.0001 cd/m2, max: 1000 cd/m2
Maximum Content Light Level              : 999 cd/m2
Maximum Frame-Average Light Level        : 745 cd/m2

…leads to the following output of cat /sys/class/amhdmitx/amhdmitx0/config:

cur_VIC: 96
cur_video_param->VIC=96
cur_video_param->colordepth: 8bit
para->colorspace: 422
AVIF VIC: 96
VIC: 96 3840x2160p50hz
Colour depth: 14-bit
Colourspace: YUV422
Colour range: limited
EOTF: HDR10
YCC colour range: limited
Colorimetry: BT2020nc
PLL clock: 0xc000027b, Vid clock div 0x000a739c
Aspect ratio: 16:9/full frame
audio config: on
audio on/off: on
audio source: SPDIF
audio type: Dobly Digital+
audio channel num: 2 channels
audio sample rate: 192kHz
audio sample size: 16bit
3D config: off

Among others “Colour depth” and “Colourspace” seem off to me and why is it picking 2160p50hz and not 2160p25hz (which is supported according to /sys/class/amhdmitx/amhdmitx0/disp_cap) to display the content?

Playback of non-plus HDR 4K 25FPS content yields the same result: banding, 50Hz and bogus config. On the other hand, I can watch 24FPS 4K HDR and HDR+ content perfectly fine.

I already manually whitelisted all 1080p and 2160p entries in the Kodi System settings and I did update the Vero4K+ to the Sep 27 staging commit - to no avail.

I would be glad, if you could help me. Thanks in advance!

Hi,

Can you please post full logs with debugging enabled so we can check this?

The quoted part in your reply led me to review my whitelist settings first and i noticed that “Allow double refresh rates” was still ticked. Upon unticking the checkbox, the aforementioned video plays fine now. :slightly_smiling_face:

cur_VIC: 94
cur_video_param->VIC=94
cur_video_param->colordepth: 10bit
para->colorspace: 422
AVIF VIC: 94
VIC: 94 3840x2160p25hz
Colour depth: 12-bit
Colourspace: YUV422
Colour range: limited
EOTF: HDR10
YCC colour range: limited
Colorimetry: BT2020nc
PLL clock: 0xc000027b, Vid clock div 0x000a739c
Aspect ratio: 16:9/full frame
audio config: on
audio on/off: on
audio source: SPDIF
audio type: Dobly Digital+
audio channel num: 2 channels
audio sample rate: 192kHz
audio sample size: 16bit
3D config: off

On my end the issue is solved for now, thank you.

In summary the solution to my problem was to whitelist the supported display modes and to untick the “Allow double refresh rates” checkbox.

If you would like me to upload the logs reproducing the issue anyway, I will be happy to do so.

If you could please, after re-setting the ‘allow double refresh rates’ switch. I don’t get why vero would output 8 bits (which will be the cause of the banding) even at 50Hz.

So, you whitelisted 2160p/25, but it chose to output 2160p/50? That’s weird.

Yes, with that option it will always prefer a double refreshrate if available and whitelisted. The only way to enforce 4k25 is to not whitelist 4k50.

Sure, here are the logs: https://paste.osmc.tv/upowinitas

“Allow double refresh rates” is ticked again, playback starts at timestamp 2022-10-23 01:16:53.927 T:2855.

1 Like

Thanks for that. The 8 bits is a side-effect of setting video output to YUV422. This problem was spotted recently and has been corrected. With the next update you should be able to play 4k50Hz with YUV422 at 10 bits.

2 Likes

Thanks a lot. I’m looking forward to it.

That update will be ready for Sunday.

Sam

This took an extra day due to some infrastructure issues we experienced, but it’s now released.

Thanks for your patience

Sam