timg236 wrote: ↑Wed Jun 26, 2019 8:33 am
noggin wrote: ↑Wed Jun 26, 2019 8:26 am
6by9 wrote: ↑Wed Jun 26, 2019 7:01 am
Yes, the firmware wasn't parsing the "YCbCr420_only" extended block of the EDID, so was seeing 3840x2160@60 in the detailed timings but then not filtering it out due to being YCbCr420 (which currently isn't supported).
I understand - HDMI 2.0 can be a minefield...
So currently what 4K60 (aka 2160p60) and 4K50 modes are supported, if 4:2:0 is currently not supported?
RGB 8-bit?
4:4:4 YCrCb 8-bit?
4:2:2 YCrCb 12-bit? (With 8-bit content?)
The lack of current 4:2:0 support is worth flagging for those who have earlier SDR-only UHD displays (My first Sony UHD TV was 4:2:0 8-bit only for 2160p50 and 2160p59.94/60 inputs)
8 bit is fine and IIRC at p30 RGB deep color is fine. However at 4Kp60 12 bit (can’t remember about 10) would exceed the max data rate so the standard requires YUV. 4:2:0 or 4:2:2. The compositor is always 12 bits per channel RGB but the HDMI colour space converter only supports 422 not 420. Presumably 420 requires extra line buffers for the vertical downsample.
Yep - HDMI 2.0 spec supports the following :
2160p24-30 8-bit, 10-bit, 12-bit, 16-bit RGB and 4:4:4 YCrCb, and 12-bit only 4:2:2 YCrCb.
2160p50-60 8-bit RGB, 4:4:4 YCrCb and 4:2:0 YCrCb, 10-bit 4:2:0 YCrCb, 12-bit 4:2:2 and 4:2:0 YCrCb, 16-bit 4:2:0 YCrCb
So 4:2:2 YCrCb is only supported at 12-bit in any 2160p mode, and 4:4:4/RGB is only supported in 8-bit at 2160p50-60.
For HDR in 2160p50-60 you have a choice of 4:2:0 YCrCb at 10-16 bit or 4:2:2 YCrCb at 12-bit only (*)
For HDR in 2160p24-30 you can use RGB, YCrCb 4:4:4 at 10-16 bit or 4:2:2 YCrCb at 12-bit only (*)
(*) You can carry 10-bit in a 12-bit signal by padding the LSBs of course (which is what most consumer gear does when playing 10-bit HDR10 content output at 4:2:2)
The HDMI organisation used to have a great web page detailing the HDMI 2.0 specs for this. It's now gone but still available via the Wayback machine
https://web.archive.org/web/20170606054 ... 0_faq.aspx
Some of the 10-16 bit modes, particularly at 2160p50-60 will require your TV to support HDMI Enhanced / HDR Deep Color etc. modes - and in some cases manually enable support in your TV and/or AVR (If your Pi is connected to your TV via an AVR) - and not all TVs support all modes on every HDMI input...
I guess if the Pi is converting from RGB->YCrCb in the compositor then the compositor will also need to know the new RGB->YCrCb matrix co-efficients for Rec 2020 gamut, as they are different to Rec 709 HD. Effectively we now have three separate RGB<->YCrCb matrix co-efficients to cope with - Rec 601 for SD, Rec 709 for HD and Rec 2020 for UHD (though Rec 2020 in HD is also now appearing on things like iPlayer UHD MPEG DASH streams when they drop to 1080p50)