Submitted by Sebastian on Fri, 05/30/2014 - 22:09
The rather unfortunate wiring of the HDMI encoder chip on the Zedboard of AXIOM Alpha makes it impossible to use any full (4:4:4) color mode, because there are just not enough data input lines to transfer a complete pixel. The only modes we can use are those where partial data for two pixels is transmitted and the missing parts are interpolated by the encoder (ADV7511). The mode we started with was the rather strange RGB 2:4:2 mode where pairs of red/green and green/blue are sent and both red and blue are interpolated over two adjacent pixels by the encoder.
Certain sample footage that contains straight edges therefore shows red/blue borders on those edges because of the difference between the red and blue values. In order to compensate for this effect, we recently used the color transformation matrix of the HDMI output pipeline to transform the RGB values into YCbCr, which is also transmitted as partial information (Y/Cb and YCr this time) but provides luma information for every pixel. This enhances sharpness as the luma part is pixel accurate and somewhat reduces the color effects on the edges.