Color Converter
Here is universal high precision color converter component based on the direct 3x3 matrix multiplication (see our mult3x3 arithmetic core) without convert-specific (such as RGB<->YCbCr) optimization. The current color transformation is defined by the dynamically load matrix factors and can be changed at any time. At this moment we've typed factors for these convertions: ComputerRGB_to_YCbCr601,
YCbCr601_to_ComputerRGB,
StudioRGB_to_YCbCr601,
YCbCr601_to_StudioRGB,
ComputerRGB_to_YCbCr709,
YCbCr709_to_ComputerRGB,
StudioRGB_to_YCbCr709,
YCbCr709_to_StudioRGB,
YCbCr709_to_YCbCr601,
YCbCr601_to_YCbCr709,
YUV601_to_YIQ601,
StudioRGB_to_YIQ601,
YIQ601_to_StudioRGB.
Precision of matrix factors is 10-E4. Trnasform operations were verifyied by the comparing with Matlab's equation. Testbench is attached.
Resource utilization by the core with 10-bit input data for modern Altera's FPGA StratixII EP2S30F672C5 (27104 ALUTs/128 DSP Blocks) is about 470 ALUTs/72 9-DSP Blocks and Fmax 178MHz.