HDMI 10-Bit support

Hi, we are looking for answers for the following:

  1. Does HDMI output port on Tegra X1 SOC support YUV 4:2:0 10-bit video display?
    Please note, 10-bit display is critical here and we would like confirmation on this.

  2. HDMI 2.0a is not currently supported on Tegra X1, are there any plans for Tegra X1 revisions/updates with HDMI 2.0a (HDR) support?

Would really appreciate quick inputs on these :)

Hi zeitgeist,

The both deep color mode (10-bit/12-bit) over HDMI and HDR-10 are not supported on TX1.

Thanks

I need one more clarification.

Does the 10-bit HEVC hardware decoder on Tegra X1 output YUV 4:2:0 10-bit?

Hi zeitgeist,
No, we support YUV420 8-bit only.

Hi DaneLLL,

If my understanding is right, the input to the video decoder can be HEVC Main 10 video stream, while the output is always YUV 8-bit. In that case, how do we take advantage of the 10 bit encoded content? Certainly there will be loss in quality due to the conversion to 8 bit from 10 bit.

Is there a way to get 10 bit output from the decoder?

Hi zeitgeist,
Could you specify which document describes “the input to the video decoder can be HEVC Main 10 video stream”? My understanding is that we support YUV420 8-bit only.

Hi DaneLLL,

HEVC Main 10 video stream is nothing but 10-bit color-depth encoded content which is supported by Tegra X1 decoder. It is mentioned here https://developer.nvidia.com/content/tegra-x1 as follows -
“Tegra X1 also supports decode of 10-bit color-depth 4K H.265 60 fps video streams”

From this, I deduce that input to the decoder can be 10-bit but output of the decoder is always YUV420 8-bit.
My question is regarding the quality degradation that would take place by this conversion from 10-bit to 8-bit.
If the decoder can support 10-bit input why is the output restricted to 8-bit?

Hi zeitgeist,
“Tegra X1 also supports decode of 10-bit color-depth 4K H.265 60 fps video streams”
The feature is not ready in the latest release r24.2. Now r24.2 supports 8-bit input only.
Sorry for the wrong comment.

Hi DaneLLL,

I did some experiments on R24.1. I was able to decode H.265 Main 10 video bitstreams (with YUV 4:2:0 10 bit content) using gstreamer on Tegra X1 EVM. However, the video output was YUV 4:2:0 8 bit instead of YUV 4:2:0 10 bit.

I have found similar results on R23.2 as well. I have not yet verified this on R24.2.

Based on the above, it seems to me that the hardware decoder on Tegra X1 supports decoding of H.265 streams of Main 10 profile with 10 bit depth. However, the output format is always YUV 4:2:0 8 bit. This is true till L4T version R24.1.

I would appreciate if you can share some information regarding the output chroma format of the decoder.

  1. Is the hardware decoder capable of providing YUV 4:2:0 10 bit output when the input to the decoder is H.265 Main 10, 10 bit video?

  2. If hardware decoder does support YUV 4:2:0 10-bit output and if our observations are due to a software limitation, is there any plan to add this support in software anytime soon?

Hi zeitgeist,
My #8 is incorrect. Your observation is right. The encoder input can be H265 Main10 stream but the output is YUV420 8-bit.

  1. Is the hardware decoder capable of providing YUV 4:2:0 10 bit output when the input to the decoder is H.265 Main 10, 10 bit video?
    Yes.
  2. If hardware decoder does support YUV 4:2:0 10-bit output and if our observations are due to a software limitation, is there any plan to add this support in software anytime soon?
    Currently we don’t have plan to add this for L4T in the near future. Will update once we have plan settled down.

Hi DaneLLL,

Thanks for the reply.

My guess is that the decoder output is restricted to YUV 4:2:0 8 bit because the HDMI display on Tegra X1 supports only 8-bit. Please confirm if this is true.

Just want to understand this some more, Can 10-bit output of hardware decoder be enabled by updating certain hardware registers? Or Does it need a more involved software update?

If it requires changes which I can try out myself, please let me know. 10-bit decoder output is crucial for our project and any information on how we can enable this is highly appreciated.

Hi zeitgeist,
It requires a full software stack for YUV420 10-bit output, such as buffer allocation.
And as you said, the HDMI out is 8-bit, it is not a complete pipeline to have all buffers in 10-bit.