True matrix 3x3 multiplier :: Page2

Description

Here is universal high precision color transform component based on the direct 3x3 matrix multiplication 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 (has 27104 ALUTs/128 DSP Blocks at all) is about 276 ALUTs and 18 9bit-DSP Blocks.

Features

- Universal, dynamically changable color 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.

- High-precision: upto 16 bit color components;

- Low resource utilisation with modern FPGA;

Status

- Initial Release : 15.08.2006

- Verify ComputerRGB <-> YCbCr color transform by simulation and comparing with Matlab results. Passed.

- Implemented with Altera EP2S30 FPGA. Passed.

© copyright 1999-2010 OpenCores.org, equivalent to ORSoC AB, all rights reserved. OpenCores®, registered trademark.