I am using a Nvidia Jetson AGX Xavier Developer Kit with Jetpack 4.5.1 (L4T 32.5.1) and I intend to transmit full range RGB output video over HDMI. I intend to do a special encoding at the bit level, hence I need to keep the video untouched – “bit perfect”. I have set the color space to “RGB” and the color range to “Full” in the xorg.conf. However, I cannot transmit the video without some errors in the RGB values.
I have been doing some tests with the following test pattern:
Note that this test pattern has all the color levels from 0 to 255 for all color channels.
Capturing the output with a capture board, I have obtained this result:
The difference is that some specific color levels are being received with a “1 unit” error. That happens to all color channels (R, G and B) in all the color gradients bars on the image. The image below shows the errors (captured value minus expected value) for each color level from 0 to 255 (which happens in the same way to all color channels):
So, there are two values on the lower part of the range which have an error of 1 unit, and there is a set of values on the upper part of the range (except 255) which have an offset of 1 unit.
Note that this is not a question of precision loss in color space due to being compressed/decompressed through the HDMI RGB “limited range”. The limited range has already been tried and it shows errors higher and much more spread over the entire range than the errors I’m showing here (which occur with full range).
When connecting the HDMI output of the Xavier to a monitor, it is possible (but not easy) to see the errors.
I have tested the HDMI output with several monitors and capture boards. The results have been similar.
Has anyone had a similar problem or have any hint on what may be happening?
Is there any configuration to fix this or else is there any stuff that can be tried?