We are currently providing RGB video over HDMI from an nVidia Geforce 980 GTX to the FMC-IMAGEON board to provide 16 bits of color (green and blue channels only) to our FPGA (AES-MMP-7Z045-G via AES-MMP-BB2-G). I've setup the PC output to be Full-Range RGB. I believe I have configured the ADV7611 chip correctly over I2C to handle RGB input and provide RGB output (CSC bypassed) to the FMC port. I confirmed this by reading the registers:
HDMI_COLORSPACE[3:0] , Addr 68 (HDMI), Address 0x53[3:0] (Read Only) - which yielded a value of 0x1 (RGB_FULL)
CSC_COEFF_SEL_RB[3:0] , Addr 44 (CP), Address 0xF4[7:4] (Read Only) - which yielded a value of 0 (CSC is bypassed)
In the FPGA, we use an AXI VDMA to stream video into memory.
Displaying black and white images on the PC HDMI output which have RGB values of (0,0,0) and (255,255,255), respectively, we notice that 0 values in each color channel get converted to values of 1 and 255 values get converted to values of 254.
Input channel values (PC BMP file Fullscreen) - 0 1 2 3 ... 252 253 254 255
Ouput channel values (VDMA output stored in memory) - 1 1 2 3 ... 252 253 254 254
I was wondering if this issue has ben ran into before and if there is a simple fix to this issue. We plan on using the HDMI port to send both video frames and metadata related to sent video frame, but can't if we can't fix the 1-254 clipping. We are also outputting RGB to an ADV7511 just to make sure its syncing which works, but is missing red channel color data.