ADV7480 Color Range Adjustment

We got requirement need to fixed output color range in full range(0-255). We try to modify the register as below and try to control output range. But it might not working. As my experience in ADV7619/12 , It shall working. Shall I need to enable other control register?

Are you using the latest script file (3.6c)? If yes, what script is used?

Can you also provide details on exact configuration used and if you can see the issue on the eval board.

We did a quick experiment, provided a 100% white RGB pattern via HDMI (codes are 255 for R, G and B components). Ran the HDMI to TTL script (01-32 from 3.6c script file). We could see the Y component value being 255 at the HDMI output. We then set CP_OP_565_RANGE to 1, and the Y component became 235. So the control is working OK.

Apologies about the delay. Can you please clarify the following points?

1. How do you check if the digital value at the output is limited to 235 or goes up to 255?

2. Have you confirmed your source outputs data up to 255?

For example, when going HDMI in -> ADV748x -> ADV7511 -> HDMI out on the evaluation board using script 1-32 from the 3.6c script file, we would use an Astro analyzer to see the HDMI output and also read the digital value for each pixel. That way we can see that the HDMI source is providing a white pattern with every R, G and B components having a 255 value for each pixels. We can then confirm that the Y value is 255 at the HDMI output when cp_op_656_range is set to 0, and that the Y value is 235 when cp_op_656_range is set to 1.

Can you please indicate how you checked the digital values at the HDMI output when you tried DVD --HDMI-> ADV7481_EVB --> HDMI to Monitor with script 1-32 from 3-6c scripts file on the evaluation board?

Can you please indicate how you checked the digital values at the HDMI output when you tried DVD --HDMI-> ADV7481_EVB --> HDMI to Monitor with script 1-32 from 3-6c scripts file on the evaluation board?

Here is my test step.

1. Connect the DVD to HDMI Monitor and control the DVD output range by manual mode and check the Full range / limit range difference in the Monitor. I will see the Luminance change from monitor. Make sure the DVD function is working.

2. Connect the DVD -> ADV7481_EVB -> Monitor.

ADV7481_EVB shall detect the input and output by itself due the EVK include mcu.

I can see the EVB load script 1-32 by itself. (I can see the log by UART)

The HDMI_COLORSPACE[3:0] read back (HDMI RX Map, Reg 0x53[3:0]) provides a value based on the AVI InfoFrame received in the HDMI input stream. So when you read RGB_FULL, it means that the HDMI source is declaring in its AVI InfoFrame that it can output a full range. But it doesn't necessarily mean that the content provided by the source is including values below 16 or above 255. So this is something to be careful about.

Also when you plug the DVD player into the monitor and see the luminance change when switching between Full Range and Limit Range doesn't necessarily mean that the values are above 235 and below 16 in Full Range mode. Maybe the DVD player is applying a different gain when you select between the 2 ranges causing the Luminance to change, but the content remains within the 16 to 235 range in both cases. The only way to be sure is by measuring the pixels digital values.

When we apply an HDMI source with a content that has pixels value above 235 (confirmed by measuring the pixel digital value) to the evaluation board, we can see the digital output pixel values change in the HDMI output when using the CP_OP_656_RANGE control.

We are going to set this up in MIPI output mode going into a MIPI analyzer to re-confirm this is also the case in MIPI output mode.

The fact you are also seeing the range change with CP_OP_656_RANGE in MIPI mode using the CP pattern generator also makes me wonder if the HDMI input you are providing has values above 235 and below 16. Would you have a way to confirm this by measuring the pixel values in the HDMI output from your PC with the test pattern you generated?

I can accept your opinions. The source shall not really output range up to 0-255 , But even the source not really output the full range , ADV7480 shall still can adjust the color range by CP_OP_656_RANGE. My issue is no any response between CP_OP_656_RANGE = 1 or 0.

The luminance doesn't provide any different between CP_OP_656_Range = 0 or 1 if video is from HDMI input.

But , When change the source to internal pattern gen , the CP_OP_656_RANGE will be working well.

Since the ADV7481_EVB not in my hand now, I also check CP_OP_656_Range function in ADV7619_EVB. (DVD -> ADV7619 -> MONITOR)

To set CP_OP_656_RANGE , We can see the luminance different between CP_OP_656_RANGE = 0 and 1.

Apologies about the delay. We confirmed that the CP_OP_656_RANGE control is working as expected in MIPI output mode using a MIPI analyzer. We tested with a 1080p60 HDMI input providing RGB components of value 255 (White pattern), using the 01-21 script from the 3.6c script file. When CP_OP_656_RANGE is set to 0, we measure a Y value near 255 on the MIPI analyzer. When CP_OP_656_RANGE is set to 1, we can measure a Y value of 235 on the MIPI analyzer.

If you put an HDMI signal with component values within 16 and 235, you will not see any difference when using CP_OP_656_RANGE.

It sounds like you want to be able to adjust the brightness whatever the HDMI input provides. Have you tried using the CP_BRIGHTNESS control (CP Map, Reg 0x3C)? You will need to set VID_ADJ_EN to 1 to be able to use it.

We are not going to adjust brightness. We just confuse color range due to we created the test picture from PC and make sure the range is 0-255. Also ADV7480 already got the full range from register , so we afraid the wrong setting in CP_OP_656_Range to cause the output range attenuation. (Only got 16-235 in our system) I guess , CP_OP_656_Range shall can work when ADV7480 detect the full range.

But we try to set this register , but it's no response.

I also try CP_OP_656_Range setting in ADV7619/ADV7850 in my source and try to provided full range and limit range to ADV7619/ADV7850. The CP_OP_656_Range can working well for both input mode. I can see the luminancedifference in monitor.

It's really strange in my side , the test equipment is same , but CP_OP_656_Range for ADV7619/ADV7850 is fine for both (limit / full range) mode input. But ADV7480 is fail.

I have review the UG-237 (ADV7619 HW user guide) , page 120 , figure 41 CP Automatic Gain control. The op_656 range might can work for both mode input. It is same with my test result from ADV7619_EVK.

here is latest finding and suggestion for further test on this issue on our side:

We’ve tested this in TTL output mode and in MIPI output mode as described on the Forum and couldn’t see the issue reported by the customer. CP_OP_656_RANGE works as expected.

The customer claims he is having the issue using a DVD player and a PC, looking at picture with a monitor. We used a Quantum Data generator, an Astro HDMI analyzer and a MIPI analyzer with an eval board. With the Astro and the MIPI analyzer we could measure the pixel values to prove the values were above 235 at the HDMI input and were also above 235 at the output or clipped to 235 depending on the CP_OP_656_RANGE setting.

There is not much we can do if we cannot reproduce the issue. If the customer can reproduce this issue using video generators such as QD generators and analyzers that allow to measure the pixel values such as an Astro analyzer or a MIPI analyzer, maybe we can then try to reproduce his exact test conditions to see if we can reproduce the issue.