24bit RGB4:4:4 Full Range for HDMI output of i.MX6Quad

cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 

24bit RGB4:4:4 Full Range for HDMI output of i.MX6Quad

Jump to solution
3,516 Views
yuuki
Senior Contributor II

Dear all,

We want to set HDMI output of i.MX6Quad to 24bit RGB4:4:4 Full Range.

We found the following thread.
https://community.nxp.com/thread/430155

We tried the following setting, however, the HDMI output does not become Full range.
  - HDMI_FC_AVICONF3[YQ1_YQ0_YCC] = b'01
  - HDMI_FC_AVICONF0[FC_AVICONF0_RGB_YCC]_[Y1:Y0] = b'00

<Question 1>
Is the following information in "thread/430155" right?
Please tell me the right list if this is not right.

================================================
HDMI_FC_AVICONF3[YQ1_YQ0_YCC]
YQ1_YQ0_YCC = 00     Limited range (16 to 255)
YQ1_YQ0_YCC = 01     Full range (0 to 255)
YQ1_YQ0_YCC = 10     Reserved
YQ1_YQ0_YCC = 11     Reserved

HDMI_FC_AVICONF0[FC_AVICONF0_RGB_YCC]
[Y1:Yo] = 00     RGB (default)   
[Y1:Yo] = 01     YCbCr 4:2:2
[Y1:Yo] = 10     YCbCr 4:4:4
[Y1:Yo] = 11     Future
================================================

<Question 2>
Would you tell me the setting method of 24bit RGB4:4:4 Full Range?
Should we set HDMI_CSC_CFG or other register also?

<Question 3>
When Full range / RGB setting, How does the set point convert it?
 for example,
  - RGB set to 0 => 0 output
  - RGB set to 256 => 256 output

<Question 4>
When Limited range / RGB setting, How does the set point convert it?
 for example,
  - When 0 is set in RGB value, what outputs it?
  - When 256 is set in RGB value, what outputs it?

<Question 5>
About these Full Range and Limited Range,
May I have a list of output for the input?

Best Regards,
Yuuki

Labels (1)
1 Solution
2,795 Views
daiane_angolini
NXP Employee
NXP Employee

After internal investigation, the answer I got is:

there is one bug in the color space conversion in the HDMI controller internal;

  

In a typical Color Space conversion it is possible for the value converted to be outside the allowed range of the destination color space, which is handled by clipping the data to the maximum or minimum allowed excursion for the selected destination color depth.

The existing clipping does not consider the quantization range limitation imposed by the HDMI specification and therefore causes violations of the quantization range.

  it can't support range conversion due to this bug;

View solution in original post

0 Kudos
Reply
12 Replies
2,796 Views
daiane_angolini
NXP Employee
NXP Employee

After internal investigation, the answer I got is:

there is one bug in the color space conversion in the HDMI controller internal;

  

In a typical Color Space conversion it is possible for the value converted to be outside the allowed range of the destination color space, which is handled by clipping the data to the maximum or minimum allowed excursion for the selected destination color depth.

The existing clipping does not consider the quantization range limitation imposed by the HDMI specification and therefore causes violations of the quantization range.

  it can't support range conversion due to this bug;

0 Kudos
Reply
2,795 Views
yuuki
Senior Contributor II

DaianeAngolini

Dear Daiane Angolini-san,

Thank you for your support.
I have understood the matter described in your last message.

Best Regards,
Yuuki

2,795 Views
daiane_angolini
NXP Employee
NXP Employee

1) Is the following information in "thread/430155" right?

From the documents which defines the bits you've shared, the registers content are

  - HDMI_FC_AVICONF3[YQ1_YQ0_YCC] = b'01
  - HDMI_FC_AVICONF0[FC_AVICONF0_RGB_YCC]_[Y1:Y0] = b'00

As you you said

2) Should we set HDMI_CSC_CFG or other register also?

No, only when you want to set YCC.

<Question 3>
When Full range / RGB setting, How does the set point convert it?
 for example,
  - RGB set to 0 => 0 output
  - RGB set to 256 => 256 output

I don't get your point. You example describes the full range in action. There is no limitation in the full range. Can you, please, elaborate?

<Question 4>
When Limited range / RGB setting, How does the set point convert it?
 for example,
  - When 0 is set in RGB value, what outputs it?
  - When 256 is set in RGB value, what outputs it?

There is an algorithm to make the 0-256 fit inside the 16-235 range, I don't have the detail on how this algorithm calculates the exact values.

5) can you, please elaborate? I'm not sure I got your question

0 Kudos
Reply
2,795 Views
yuuki
Senior Contributor II

DaianeAngolini


Dear Daiane Angolini-san,

Thank you for a response.


> 5) can you, please elaborate? I'm not sure I got your question
=>
I'm sorry. My question was not good.
We wanted to know how algorithm calculated.

From your answer,
We understood that actually 24bit RGB4:4:4 Full Range setting was not effective.


I want to consider whether we can use CSC of IPU.
Can we convert 16-235 range into 0-256 range using CSC of IPU?

Best Regards,
Yuuki

0 Kudos
Reply
2,795 Views
daiane_angolini
NXP Employee
NXP Employee

> Can we convert 16-235 range into 0-256 range using CSC of IPU?

I have the confirmation from the IPU expert that yes, CSC of IPU can perform this transformation. However, there is no sample source code showing how to configure it.

I have also contacted internal team to try to figure it out if there is any missing configuration (or known issue) on why hdmi registers configuration is not taking effect to set the output to full range.

I should have some update early next week

0 Kudos
Reply
2,795 Views
yuuki
Senior Contributor II

DaianeAngolini

Dear Daiane Angolini-san,

Thank you for your support.

> I should have some update early next week
=>
We look forward to hearing back from you.

Best Regards,
Yuuki

2,795 Views
daiane_angolini
NXP Employee
NXP Employee

I'm sorry for my late reply. I'm still trying to get the accurate answer to this question

0 Kudos
Reply
2,795 Views
yuuki
Senior Contributor II

DaianeAngolini

Dear Daiane Angolini-san,

Thank you for your reply and daily support.
I am still expecting your response regarding this issue.

Best Regards,

Yuuki

2,795 Views
daiane_angolini
NXP Employee
NXP Employee

Thanks, Yuuki.

I'm still searching internally for the answer for your questions. I could not confirm the information so far...

Regarding:

About these Full Range and Limited Range,
May I have a list of output for the input?

Do you mean a correspondence table? Can you please elaborate?

0 Kudos
Reply
2,795 Views
yuuki
Senior Contributor II

Dear all,

May I have advice for this question?
Your kind helps would be greatly appreciated.

Best Regards,
Yuuki

0 Kudos
Reply
2,795 Views
daiane_angolini
NXP Employee
NXP Employee

Can you, please, share which release are you using? (are you using linux?)

0 Kudos
Reply
2,794 Views
yuuki
Senior Contributor II

DaianeAngolini

Dear Daiane-san,

Thank you very much for your reply.

We use the Android4.4.2 (Based on NXP BSP).

Best Regards,

Yuuki

0 Kudos
Reply