fyi for those doing development or wanting to increase the amount of testing and verification of the final outputted pixels, some devices (at least an i3-1115G4, presumably lots of other devices), are capable of performing a lossless capture on device themselves.
This capture occurs after all shader/kodi/linux kernel/hardware planes/hardware video processing (upscaling, chroma resampling, hardware plane blending, etc) occurs. It functions by rerouting the final pixel data to file instead of the hdmi module. Example code to perform this is https://github.com/doppingkoala/l…6fd78224e3c71c2, I have checked that the 8-bit RGB capture mode is indeed 100% bitperfect of the data sent of the hdmi signal. Note the linked code is only setup for a single frame, the docs suggest captures of a number of sequential frames should be possible to capture as well.
Might be useful to someone. Being on device both means no other hardware required and that it is also able to be ran via ssh which opens the possibility of automated testing to test as many frames / test patterns as one could possible want.
Posts by doppingkoala
-
-
The chroma is never taken to 4:4:4 for P and T; only the intensity uses an interpolated chroma value, so nothing has to be filtered back down.
For each pair of pixels, from the composed picture:
The 4:2:0 chroma goes to 4:2:2 vertically (the same 12-tap Lanczos step the YCbCr tunnel already does).
P and T are computed at the even pixel, which sits on the 4:2:2 chroma sample: its own Y and that chroma, through the RPU's matrix to R'G'B', then linear light, LMS, PQ and IPT. No horizontal filter touches them.
I is needed for both pixels. For the odd one, its chroma is interpolated horizontally with the same Lanczos, and only its I is kept.hadesdevls Thanks for the details and reference.
Is that not identically equivalent to upsampling to 4:4:4, doing the conversion, and then dropping the odd chroma pixels rather doing standard chroma downsampling that first runs an anti-aliasing filter? -
IPT, as licensed players send it. Profiles 7 and 8 reach the TV in IPT-PQ-c2, converted in floating point and packed with the matrices that profile 5 films carry. The TV no longer converts the YCbCr itself, so the colour between the two pixels of each chroma pair no longer depends on how it interpolates. Profile 5 is unchanged, byte for byte.
Can you explain this a bit more? Profile 7 and 8 content is in YCbCr in the actual file, so decodes to YCbCr in 4:2:0. Which then needs to be upsampled to 4:2:2.
How can you then output this in IPT without needing to introduce another upsampling to 4:4:4 in order to apply the conversion to get to IPT color-space from the YCbCr pixels? And then need to downsample again to get 4:2:2 for the tunnel? -
I tested a side circuit doing direct Profile 5 vs converted to YCbCr, and the differences were imperceptible. But it's definitely planned to skip this conversion for Profile 5 in the stable release, which can be avoided even though in reality it involves almost no loss in quality.
Look forward to it.
If anyone is interested https://discourse.coreelec.org/t/learning-abo…opment/50998/65 has a bunch of links that show ICtCp is better for the chroma sub-sampled video, so not converting the profile 5 converting to YCbCr is objectively better even disregarding computation aspects. -
Nice we can continue our discussion here
I sent you a mail but I will past my answer here also :I use YCbCr inside the RGB 8bit tunnel to avoid unnecessary conversions and rounding and help small GPUs. I send the matching YCbCr to RGB and RGB to LMS matrices for the TV to handle the conversion in TV-Led mode, following ETSI specs
For your comparison, do you need IPT PQ c2 inside the RGB tunnel, like the earlier Yblod build? Just tell me what output and tunnel format you need, I can adapt the Master Reference circuit to match your need. Other circuits deliberately modify the signal and aren’t intended as exact references and I think do not deserved to be deeply analyzed
CroqueMr Similarly, I assume that to maximise quality and efficiency that profile 5 content is using the native IPT PQ c2 and not being converted to YCbCr?