Color Space Converter

Similar documents
Color Space Converter IP Core User Guide

isplever Turbo Encoder User s Guide November 2008 ipug08_04.4

Gamma Corrector IP Core User Guide

FIR Filter IP Core User s Guide

isplever Correlator IP Core User s Guide June 2008 ipug38_02.3

DA-FIR Filter Generator User s Guide

8b/10b Encoder/Decoder

2D Edge Detector IP Core User s Guide

Median Filter IP Core User s Guide

It is well understood that the minimum number of check bits required for single bit error correction is specified by the relationship: D + P P

Reference Design RD1065

Dynamic Block Reed-Solomon Encoder User s Guide

Dynamic Block Reed-Solomon Decoder User s Guide

Block Convolutional Encoder User s Guide

isplever Parallel FIR Filter User s Guide October 2005 ipug06_02.0

isplever Reed-Solomon Encoder User s Guide October 2005 ipug05_03.0

Block Viterbi Decoder User s Guide

i_csn i_wr i_rd i_cpol i_cpha i_lsb_first i_data [15:0] o_data [15:0] o_tx_ready o_rx_ready o_rx_error o_tx_error o_tx_ack o_tx_no_ack

Power Estimation and Management for LatticeECP/EC and LatticeXP Devices

FFT Compiler IP Core User s Guide

BSCAN2 Multiple Scan Port Linker

FFT Compiler IP Core User Guide

isplever Multi-Channel DMA Controller User s Guide February 2006 ipug11_04.0

LED1 LED2. Capacitive Touch Sense Controller LED3 LED4

2D FIR Filter IP Core User s Guide

LatticeSC MACO Core LSCDR1X18 Low-Speed Clock and Data Recovery User s Guide

LatticeECP2/M Soft Error Detection (SED) Usage Guide

LatticeXP2 Soft Error Detection (SED) Usage Guide

Power Estimation and Management for LatticeXP2 Devices

UART Register Set. UART Master Controller. Tx FSM. Rx FSM XMIT FIFO RCVR. i_rx_clk o_intr. o_out1 o_txrdy_n. o_out2 o_rxdy_n i_cs0 i_cs1 i_ads_n

Fall 2015 Dr. Michael J. Reale

Minimizing System Interruption During Configuration Using TransFR Technology

FPGA Implementation of 2-D DCT Architecture for JPEG Image Compression

MDIO Master and Slave Controllers

Core Facts. Documentation Design File Formats. Verification Instantiation Templates Reference Designs & Application Notes Additional Items

LatticeXP2 Dual Boot Usage Guide

Power Estimation and Management for MachXO Devices

INF5063: Programming heterogeneous multi-core processors. September 17, 2010

Implementing FIR Filters

System Design Using ispleverdsp

LatticeECP2/M Density Migration

Parallel to MIPI CSI-2 TX Bridge

Lecture 12 Color model and color image processing

Introduction ti to JPEG

LatticeSC/M Broadcom HiGig+ 12 Gbps Physical Layer Interoperability Over CX-4

I 2 C Master Control FSM. I 2 C Bus Control FSM. I 2 C Master Controller

Using the LatticeMico8 Microcontroller with the LatticeXP Evaluation Board

Cvision 3 Color and Noise

Core Facts. Documentation Design File Formats. Verification Instantiation Templates Reference Designs & Application Notes Additional Items

PCI Express Throughput Demo Verilog Source Code User s Guide

PCI Express Basic Demo Verilog Source Code User s Guide

Each I2C master has 8-deep transmit and receive FIFOs for efficient data handling. SPI to Dual I2C Masters. Registers

The Core Technology of Digital TV

Importing HDL Files with Platform Manager 2

DigiPoints Volume 1. Student Workbook. Module 8 Digital Compression

Design and Efficient FPGA Implementation of an RGB to YCrCb Color Space Converter Using Distributed Arithmetic

Lattice Semiconductor Design Floorplanning

Color and Shading. Color. Shapiro and Stockman, Chapter 6. Color and Machine Vision. Color and Perception

Multimedia Systems Image III (Image Compression, JPEG) Mahdi Amiri April 2011 Sharif University of Technology

Core Facts. Documentation Design File Formats. Verification Instantiation Templates Reference Designs & Application Notes Additional Items

Quick Start Guide. for isplever Software. isplever Project Navigator

Introduction to Computer Science (I1100) Data Storage

Low-Cost Serial RapidIO to TI 6482 Digital Signal Processor Interoperability with LatticeECP3

Color Space Converter

Efficient design and FPGA implementation of JPEG encoder

FPGA Matrix Multiplier

Lattice PCI Express x4 Scatter-Gather DMA Demo Verilog Source Code User s Guide

LogiCORE IP Floating-Point Operator v6.2

Quixilica Floating Point FPGA Cores

IDE/ATA Interface Controller with WISHBONE

I 2 C Slave Controller. I 2 C Master o_timeout_intr

Lecture 8 JPEG Compression (Part 3)

Game Programming. Bing-Yu Chen National Taiwan University

Mixed-Language Simulation with Lattice IP Designs Using Active-HDL

CPRI IP Core User s Guide

DSP Guide for FPGAs Lattice Semiconductor Corporation 5555 NE Moore Court Hillsboro, OR (503) April 2008

Basic Xilinx Design Capture. Objectives. After completing this module, you will be able to:

Table 1: Example Implementation Statistics for Xilinx FPGAs

LatticeXP2 Configuration Encryption and Security Usage Guide

Color-Space Converter: RGB to YCrCb Author: Gabor Szedo

LatticeSCM SPI4.2 Interoperability with PMC-Sierra PM3388

Computer Graphics. Bing-Yu Chen National Taiwan University The University of Tokyo

Scalable Low-Voltage Signaling with LatticeSC/M Devices

Robert Matthew Buckley. Nova Southeastern University. Dr. Laszlo. MCIS625 On Line. Module 2 Graphics File Format Essay

ECE 417 Guest Lecture Video Compression in MPEG-1/2/4. Min-Hsuan Tsai Apr 02, 2013

Enhanced Closed-loop Trim with I 2 C Control for Platform Manager Devices

Steganography: Hiding Data In Plain Sight. Ryan Gibson

Discontinued IP. Verification

LatticeSC flexipcs/serdes Design Guide

Physical Color. Color Theory - Center for Graphics and Geometric Computing, Technion 2

LatticeXP2 Hardware Checklist

Documentation. Implementation Xilinx ISE v10.1. Simulation

Floating-Point Megafunctions User Guide

D I G I T A L C I R C U I T S E E

CHAPTER 3 FACE DETECTION AND PRE-PROCESSING

Data Representation 1

Wireless Communication

Visible Color. 700 (red) 580 (yellow) 520 (green)

LatticeSC/M Family flexipcs Data Sheet. DS1005 Version 02.0, June 2011

Multimedia Decoder Using the Nios II Processor

Transcription:

March 2009 Reference Design RD1047 Introduction s (CSC) are used in video and image display systems including televisions, computer monitors, color printers, video telephony and surveillance systems. CSCs are also used in many video/image compression and processing applications, and in the implementation of NTSC/PAL/SECAM television standards, JPEG and MPEG systems. A CSC converts signals from one color space to another color space. Color space conversion is often required to ensure compatibility with display devices or to make the image data amenable for compression or transmission. The CSC Reference Design is widely parameterizable and can support any custom color space conversion requirement. Furthermore, several commonly used color space conversion methods are provided as ready-to-use configurations. Features Input data width of 8, 10, 12, and 16 bits Signed or unsigned input data Supports standard configurations as well as custom configurations Parameterized coefficients precision from 9 to 18 bits Full precision as well as limited precision output Programmable precision and rounding options for the output Option for sequential or parallel architecture for area or throughput optimization Configurable DSP block based or look-up-table (LUT) based multiplier implementations Registered input option available for input set up time improvement. Block Diagram The top-level interface diagram for the CSC Reference Design is given in Figure 1. Figure 1. Top-Level Interface Diagram for the CSC Reference Design clk ce rstn sr inpvalid din0 din1 din2 CSC outvalid dout0 dout1 dout2 optional programmable pin 2009 Lattice Semiconductor Corp. All Lattice trademarks, registered trademarks, patents, and disclaimers are as listed at www.latticesemi.com/legal. All other brand or product names are trademarks or registered trademarks of their respective holders. The specifications and information herein are subject to change without notice. www.latticesemi.com 1 rd1047_01.0

Functional Description Color Spaces A color space is a three dimensional representation of the color and intensity of an image s pixel. An example of a color space is a RGB color space where each pixel s color is represented by the constituent red, green and blue components. This color space is a natural choice for computer displays where the CRT uses these colors to display a multi-colored pixel. However, a RGB color space may not be the ideal one for image processing or efficient image transmission or human interpretation of color information. A color space that represents a color pixel using the characteristics of hue, saturation and brightness is more akin to the way humans interpret color information. HIS and HSV are examples of such color spaces. It is known that human vision is more sensitive to brightness than color. In an image, green color carries more of the brightness information than the red and blue components. Therefore some of the information from the red and blue color components can be reduced in order to compress the signal for more efficient processing. It is useful to deploy a color space representing brightness (luminance) and color components (chrominance) for processing applications. Common examples of such color spaces are YUV, YIQ and YCbCr, which are part of many video standards. The following are some commonly used color spaces: RGB: Red, Green, Blue. This color space is used in computer displays. YIQ,YUV,YCbCr: Luminance, Chrominance. These color spaces are used in television systems. YIQ is used in NTSC systems, YUV is used in PAL systems and YCbCr is used in digital television systems. CMY(K): Cyan, Magenta, Yellow, (Black). This color space is used in printing applications. The fourth component, black, is used to improve both the density range and color range. This removes the need to generate a good black color from CMY components. Color Space Conversion Color space conversion is required when transferring data between devices that use different color space models. For example, RGB to YCbCr color space conversion is required when displaying a computer image on a television. Similarly YCbCr to RGB color space conversion is required when displaying television movies on the computer monitor. As a color can be represented completely using three dimensions, a color space is a three dimensional space. Color space conversion is a one-to-one mapping from one color space to another color space. R G B to Y CbCr color space conversion is given by the following equations. The prime notations are used to denote gamma corrected values. Y = 0.257 * R + 0.504 * G + 0.098 * B + 16 Cb = -0.148 * R -0.291 * G + 0.439 * B + 128 Cr = 0.439 * R - 0.368 * G -0.071 * B + 128 Y CbCr to computer R G B conversion is given by the following equations. R = 1.164 * Y +0.0 * Cb + 1.596 * Cr -222.912 G = 1.164 * Y -0.392 * Cb -0.813 * Cr + 135.616 B = 1.164 * Y + 2.017 * Cb + 0.0 * Cr -276.8 Example applications that use CSC for R G B to Y CbCr Conversion and Y CbCr to R G B conversion are shown in the following figures. 2

Figure 2. JPEG Encoding Application Image Block 8X8 Pixels R'G'B' ===> Y'CbCr 2-D Disc. Cosine Transform Quantize Encoding Figure 3. JPEG Decoding Application Decoding Inverse Quantize Inverse 2-D Disc. Cosine Transform Y'CbCr ===> R'G'B' Image Block 8X8 Pixels CSC Implementation The color space converter is implemented using multipliers and adders operating on input pixel data and a set of coefficients defined for that conversion. The general color space conversion equations can be expressed by the following matrix multiplication. dout0 cmh cmi cmj cmk din0 dout1 dout2 = cnh cni cnj cnk = cph cpi cpj cpk din1 din2 1 The pixel values of the input color space, din0, din1 and din2 are read through the input ports. The constants denoted by cmh,cmi,..., cpk, are the coefficients used for the color space conversion. These coefficients are either provided by the user or automatically determined by the reference design GUI for standard conversions. The values of the pixel components in the converted color space are available through the output ports: dout0, dout1 and dout2. The CSC Reference Design offers a choice of two different architectures: parallel and sequential. In the parallel architecture, all three color plane data are applied at the same time. The output data for all the color planes are also available at the same time after a latency of few clock cycles. In the sequential architecture, the input data for the three color planes is applied in sequence, one after the other, using the same input port din0. The output data for the color planes is given out sequentially using the same output port dout0 after a latency of few clock cycles. Parameter Descriptions Table 1 describes the user-configurable parameters entered directly by the user through the IPexpress GUI for the CSC Reference Design. The GUI tabs for default configuration are shown in Figures 4 and 5. 3

Figure 4. Inputs/Coefficients GUI Tab for CSC Reference Design Figure 5. Output GUI Tab for CSC Reference Design 4

Table 1. User-Configurable Parameters Name Description Range Default Core Type Core type Architecture Architecture Input Data Width Selects between custom and pre-defined standard configurations. Selects between parallel and sequential implementation architectures. {Custom, Computer R2G2B2 to Y2CbCr:SDTV, Computer R2G2B2 to Y2CbCr:HDTV, Studio R2G2B2 to Y2CbCr:SDTV, Studio R2G2B2 to Y2CbCr:HDTV, Y2CbCr:SDTV to Computer R2G2B2, Y2CbCr:HDTV to Computer R2G2B2, Y2CbCr:SDTV to Studio R2G2B2, Y2CbCr:HDTV to Studio R2G2B2, Y2UV to Computer R2G2B2, Computer R2G2B2 to Y2UV, Y2IQ to Computer R2G2B2, Computer R2G2B2 to Y2IQ, Y2IQ to Y2UV} {Sequential, Parallel} Computer R_G_B to Y_CbCr:SDTV Sequential Input data width The bit width for the input color planes. {8, 10, 12, 16} 8 Input Data Type Input data type Signed or unsigned input data type {Signed, Unsigned} Unsigned Registered Input Registered input Coefficient Precision Width Coefficient precision width Color Plane Output Options Output precision Output width Overflow The inputs are registered, if this option is selected. The core inputs set-up times will improve by registering the inputs. This option is useful when the input data is provided on the device pins. Number of bits used to convert floating point coefficients into fixed point. {Yes, No} Yes 9-18 18 Selects between full precision and limited precision for the output data. {Full, Limited} Full Output width. This selection is available for limited precision 5-35 Not Applicable outputs. This parameter is available when some MSBs have to be {Saturation, Truncation} Truncation removed from the result for the limited precision output. If the overflow option is Truncation, the excess MSBs are removed and the remaining LSBs are not changed. If saturation option is selected, the output is saturated based on the removed MSBs. 5

Table 1. User-Configurable Parameters (Continued) Underflow Starting LSB Optional Input Ports Configuring the CSC Standard and Custom Core Types This parameter is available when some LSBs have to be removed from the result for the limited precision output. If the underflow option is Truncation, the excess LSBs are removed and the remaining output is not affected by the removed LSBs. If rounding option is selected, the output is rounded based on the removed LSBs. {Rounding, Truncation} Truncation This parameter defines the starting Least Significant Bit of the full precision output that becomes LSB of the limited precision output. This parameter gets enabled only when Output precision is selected as Limited. 0-30 3 ce Input port ce is added to the core when checked. Yes or No No sr Input port sr is added to the core when checked. Yes or No No inpvalid/outvalid If architecture is selected as Sequential, then this is always checked. If architecture is selected as Parallel, then this is optional. If checked this option will add inpvalid and outvalid ports to the core. Yes or No No Output Latency Output latency Name Description Range Default Connect Reset Port to GSR Connect reset port to GSR This provides the output latency for the selected core configuration. If this option is checked, the GSR is instantiated and used to route the CSC s rstn input. Using GSR improves the utilization and performance of the CSC Reference Design. However, if GSR is used an active input in rstn will reset most of the FPGA components as well. This option must be checked to enable the hardware evaluation capability for this reference design. 4-9 6 Yes or No Table 2 lists the standard configurations available in the CSC Reference Design GUI and their coefficient values. Table 2. Coefficients for Standard Configurations Computer R_G_B to Y_CbCr:SDTV Computer R_G_B to Y_CbCr:HDTV Studio R_G_B to Y_CbCr:SDTV Studio R_G_B to Y_CbCr:HDTV Core Type *din0 *din1 *din2 + dout0 0.257 0.504 0.098 16.0 dout1-0.148-0.291 0.439 128.0 dout2 0.439-0.368-0.071 128.0 dout0 0.183 0.614 0.062 16.0 dout1-0.101-0.338 0.439 128.0 dout2 0.439-0.399-0.04 128.0 dout0 0.299 0.587 0.114 0.0 dout1-0.172-0.339 0.511 128.0 dout2 0.511-0.428-0.083 128.0 dout0 0.213 0.715 0.072 0.0 dout1-0.117-0.394 0.511 128.0 dout2 0.511-0.464-0.047 128.0 Yes 6

Table 2. Coefficients for Standard Configurations (Continued) Y_CbCr:SDTV to Computer R_G_B_ Y_CbCr:HDTV to Computer R_G_B_ Y_CbCr:SDTV to Studio R_G_B_ Y_CbCr:HDTV to Studio R_G_B_ Y_UV to Computer R_G_B_ Computer R_G_B to Y_UV Y_IQ to Computer R_G_B Computer R_G_B to Y_IQ Y_IQ to Y_UV When a Core type is selected as Custom, the user must manually enter the coefficient values in the GUI. Full Precision Outputs Core Type *din0 *din1 *din2 + The full precision output width is given by the following sum. Full Precision Width = din_width + coeff_width + 1 + addbitval dout0 1.164 0.0 1.596-222.912 dout1 1.164-0.391-0.813 135.488 dout2 1.164 2.018 0.0-276.928 dout0 1.164 0.0 1.793-248.128 dout1 1.164-0.213-0.534 76.992 dout2 1.164 2.115 0.0-289.344 dout0 1.0 0.0 1.371-175.488 dout1 1.0-0.336-0.698 132.352 dout2 1.0 1.732 0.0-221.696 dout0 1.0 0.0 1.54-197.12 dout1 1.0-0.183-0.459 82.176 dout2 1.0 1.816 0.0-232.448 dout0 1.0 0.0 1.14 0.0 dout1 1.0-0.395-0.581 0.0 dout2 1.0-2.032 0.0 0.0 dout0 0.299 0.587 0.114 0.0 dout1-0.147-0.289 0.436 0.0 dout2 0.615-0.515-0.1 0.0 dout0 1.0 0.956 0.621 0.0 dout1 1.0-0.272-0.647 0.0 dout2 1.0-1.107 1.704 0.0 dout0 0.299 0.587 0.114 0.0 dout1 0.596-0.275-0.321 0.0 dout2 0.212-0.523 0.311 0.0 dout0 1.0 0.0 0.0 0.0 dout1 0.0-0.544639 0.838671 0.0 dout2 0.0 0.838671 0.544639 0.0 Where din_width is input data width, coeff_width is coefficient precision width and addbitval = 1 when the Use DSP Block option is unchecked, the Input Data Type is unsigned, and addbit = 0. The full precision output is a scaled-up version of the actual output value by a factor of 2 x. The value of x is equal to the maximum integer that satisfies the following equations: coeffi*2 x ([-2 coeff_widht-1, 2 coeff_width-1-1] for all multiplicative coefficients and x coeff_width + din_width - y where y = ciel(log 2 (additive_coefficient_value)) and coeffi is the i th multiplicative coefficient. Therefore, the true output value is obtained by dividing the full precision output by 2 x. 7

Limited Precision Outputs The limited precision output option can be used to limit the width of the outputs to any desired size. The CSC Reference Design GUI provides the option to choose the output width and starting LSB number. If the starting LSB is given as start_lsb, then the output is tapped as full_precision_output[output_width+start_lsb-1:start_lsb]. Limited precision output results in the removal of some LSBs and MSBs from the full precision output. The underflow options, truncation and rounding are available when one or more LSBs are removed from the full precision output. If the truncation option is selected, the removed LSBs are simply discarded and the used output bits are not affected by the discarded LSBs. If the rounding option is selected, a 1 is added to the output for positive values, if the most significant discarded bit is a 1. The overflow options, truncation and saturation are available when one or more MSBs are removed from the full precision output. If truncation option is selected, the removed MSBs are simply discarded and the used output bits are not affected by the discarded MSBs. If the saturation option is selected, the output is made equal to the maximum positive or negative value based on the sign bit, if the discarded MSBs have any significant bits. Signal Descriptions The I/O port definitions are given in Table 3. Table 3. Interface Signal Description Port Bits I/O Description All Configurations clk 1 I Reference clock for input and output data. rstn 1 I System wide asynchronous active-low reset signal. din0 8-16 I dout0 5-35 O When Parallel Architecture is Selected din1 8-16 I Input data for second color plane. din2 8-16 I Input data for third color plane. dout1 5-35 O Output data for second color plane. dout2 5-35 O Valid Signals inpvalid 1 I outvalid 1 O Input data. When the sequential architecture is selected then this port is used to give input data for all the three input color planes in sequence. When the parallel architecture is selected then this port is used to give input data for the first input color plane. Output data. When the sequential architecture is selected then this port is used to give output data for all the three output color planes in sequence. When the parallel architecture is selected then this port is used to give output data for the first output color plane. Output data for third color plane. This port is always enabled when the parallel architecture is selected. Input data valid. Indicates valid data is present on din0 (also on din1 and din2 when present). When the parallel architecture is selected then this port is optional. In this case this port is not used directly in the core but used to generate the outvalid signal after initial core latency. When the sequential architecture is selected then this port is always enabled. In this case this port is used inside the core and also used to generate the outvalid signal after initial core latency. Also when the sequential architecture is selected then this signal should be asserted high for one clock cycle when valid data for the first input color plane is present on the din0 port. For the second and third input color planes data this signal should be low. Input data for all the three input color planes should be applied at successive clock cycles without any gap. Output data valid. Indicates valid data is present on dout0 (also on dout1 and dout2 when present). When the parallel architecture is selected then this port is optional. When the sequential architecture is selected then this port is always enabled and asserted high when the valid data is present for the first output color plane. During output data of second and third color planes outvalid is low. 8

Table 3. Interface Signal Description (Continued) Port Bits I/O Description Optional I/Os ce 1 1 sr 1 1 Timing Specifications Parallel Architecture Timing Figure 6 shows the input and output signal timing diagram for the parallel architecture. The input data for all the three color planes are applied simultaneously on the input ports din0, din1 and din2. The signal inpvalid is asserted to indicate a valid input data present on the input ports. After a latency of few cycles, the output data for all the three color planes appear on the output ports dout0, dout1 and dout2. The signal outvalid is asserted to indicate a valid output data present on the output ports. Figure 6. Parallel Architecture Clock Enable. While this is de-asserted, the core will ignore all other synchronous inputs and maintain its current state. Synchronous Reset. Asserted for at least one clock period duration in order to re-initialize the core. After synchronous reset, all internal registers are cleared and outvalid goes low. clk rstn inpvalid din0 din1 din2 a(0) a(1) a(2) a(3) a(4) a(5) a(6) a(7) a(8) a(9) a(10) a(11) a(12) a(13) a(14) a(15) a(16) a(17) b(0) b(1) b(2) b(3) b(4) b(5) b(6) b(7) b(8) b(9) b(10) b(11) b(12) b(13) b(14) b(15) b(16) b(17) c(0) c(1) c(2) c(3) c(4) c(5) c(6) c(7) c(8) c(9) c(10) c(11) c(12) c(13) c(14) c(15) c(16) c(17) outvalid dout0 dout1 dout2 x(0) x(1) x(2) x(3) x(4) x(5) x(6) x(7) x(8) x(9) x(10) x(11) x(12) x(13) y(0) y(1) y(2) y(3) y(4) y(5) y(6) y(7) y(8) y(9) y(10) y(11) y(12) y(13) z(0) z(1) z(2) z(3) z(4) z(5) z(6) z(7) z(8) z(9) z(10) z(11) z(12) z(13) Output latency Sequential Architecture Timing Figure 7 shows the input and output signal timing for the sequential architecture. The input data for all the three color planes is applied in sequence on the input port din0. The signal inpvalid is asserted to indicate the first color plane data on din0. In the following two cycles, the second and third color plane data are applied on din0. After a latency of few cycles the output data for the first color plane appears on the output port dout0. The signal outvalid is asserted to indicate the first color plane data on dout0. In the following two cycles, the second and third color plane data appear on dout0. 9

Figure 7. Sequential Architecture clk rstn inpvalid din0 a(0) b(0) c(0) a(1) b(1) c(1) a(2) b(2) c(2) a(3) b(3) c(3) a(4) b(4) c(4) a(5) b(5) c(5) outvalid dout0 x(0) y(0) z(0) x(1) y(1) z(1) x(2) y(2) z(2) x(3) y(3) z(3) x(4) y(4) Output latency IPexpress User-Configurable Reference Design The CSC is an IPexpress user-configurable reference design that allows designers to configure the core and generate netlists as well as simulation files for use in designs. To download a full version of this reference design, please go to the Lattice IP Server tab in the isplever IPexpress GUI window. All isplevercore cores available for download are visible on this tab. Example Configurations Core Type Input Setting Implementation Configuration Config1 Config2 Config3 Config4 Config5 Computer R G B to Y CbCr:SDTV Computer R G B to Y CbCr:SDTV Y CbCr:HDTV to Computer R G B Computer R G B to Y CbCr:SDTV Y IQ to Y UV Architecture Parallel Sequential Parallel Parallel Parallel Input data type Unsigned Unsigned Signed Unsigned Signed Input data width 8 8 16 8 16 Coefficient precision width 18 18 18 12 18 Registered input Yes Yes Yes Yes Yes Connect reset port to GSR Yes Yes Yes Yes Yes Optional ce No No Yes No Yes Input/Output sr No No Yes No Yes Ports Inpvalid/outvalid Yes Yes Yes Yes Yes Output Latency 6 9 6 6 4 First Color Plane Output Second Color Plane Output Output precision Limited Limited Limited Limited Full Overflow Saturation Saturation Saturation Saturation Saturation Underflow Rounding Rounding Truncation Rounding Rounding Starting LSB 3 5 2 5 Output width 8 8 32 8 35 Output precision Limited Limited Limited Limited Full Overflow Saturation Saturation Truncation Saturation Saturation Underflow Rounding Rounding Rounding Rounding Rounding Starting LSB 3 5 4 Output width 8 29 8 35 10

Example Configurations (Continued) Third Color Plane Output Configuration Config1 Config2 Config3 Config4 Config5 Implementation LatticeEC Devices Table 4. Performance and Resource Utilization 1 LatticeECP Devices Table 5. Performance and Resource Utilization 1 LatticeECP2/M Devices Output precision Limited Limited Limited Limited Full Overflow Saturation Saturation Saturation Saturation Saturation Underflow Rounding Rounding Rounding Rounding Rounding Starting LSB 3 3 6 Output width 8 31 8 35 IPexpress User-Configurable Mode Slices LUTs Registers IOB Table 6. Performance and Resource Utilization 1 sysdsp Blocks f MAX (MHz) Config1 549 1097 611 52 123 Config2 473 946 265 20 97 Config3 739 1477 714 146 99 Config4 384 760 471 52 130 Config5 658 1315 475 159 86 1. Performance and utilization characteristics are generated using LFEC20E-5F672, with Lattice isplever 7.1 software. When using this reference design in a different density, speed, or grade within the LatticeEC family, performance and utilization may vary IPexpress User-Configurable Mode Slices LUTs Registers IOB sysdsp Blocks f MAX (MHz) Config1 79 158 156 52 3 114 Config2 53 58 106 20 1 126 Config3 170 334 299 146 3 113 Config4 384 760 471 52 0 137 Config5 27 54 52 159 3 188 1. Performance and utilization characteristics are generated using LFECP20E-5F672, with Lattice isplever 7.1 software. When using this reference design in a different density, speed, or grade within the LatticeECP family, performance and utilization may vary. IPexpress User-Configurable Mode Slices LUTs Registers IOB sysdsp Blocks f MAX (MHz) Config1 78 155 153 52 3 199 Config2 53 57 105 20 1 203 Config3 172 338 299 146 3 198 Config4 407 806 471 52 0 230 Config5 27 54 52 159 3 291 1. Performance and utilization characteristics are generated using LFE2-50E-7F672C, with Lattice isplever 7.1 software. When using this reference design in a different density, speed, or grade within the LatticeECP2 family, performance and utilization may vary. 11

LatticeXP Devices Table 7. Performance and Resource Utilization 1 IPexpress User-Configurable Mode Slices LUTs Registers IOB LatticeXP2 Devices Table 8. Performance and Resource Utilization 1 LatticeSC/M Devices Table 9. Performance and Resource Utilization 1 You can use the IPexpress software tool to help generate new configurations of this reference design. IPexpress is the Lattice IP configuration utility, and is included as a standard feature of the isplever design tools. Details regarding the usage of IPexpress can be found in the IPexpress and isplever help system. For more information on the isplever design tools, visit the Lattice web site at: www.latticesemi.com/software. References Keith Jack, Video Demystified, fourth edition, Elsevier, London, 2005. sysdsp Blocks f MAX (MHz) Config1 549 1097 611 52 112 Config2 473 946 265 20 90 Config3 739 1477 714 146 88 Config4 384 760 471 52 121 Config5 658 1315 475 159 75 1. Performance and utilization characteristics are generated using LFXP20E-5F484C, with Lattice isplever 7.1 software. When using this reference design in a different density, speed, or grade within the LatticeXP family, performance and utilization may vary. IPexpress User-Configurable Mode Slices LUTs Registers IOB sysdsp Blocks f MAX (MHz) Config1 78 155 153 52 3 183 Config2 53 57 105 20 1 193 Config3 172 338 299 146 3 188 Config4 407 806 471 52 0 217 Config5 27 54 52 159 3 240 1. Performance and utilization characteristics are generated using LFXP2-17E-7F484C, with Lattice isplever 7.1 software. When using this reference design in a different density, speed, or grade within the LatticeXP2 family, performance and utilization may vary. IPexpress User-Configurable Mode Slices LUTs Registers IOB sysdsp Blocks f MAX (MHz) Config1 815 1624 623 52 211 Config2 454 905 265 20 185 Config3 904 1797 718 146 238 Config4 486 967 485 52 273 Config5 803 1593 484 159 188 1. Performance and utilization characteristics are generated using LFSC3GA25E-7F900C, with Lattice isplever 7.1 software. When using this reference design in a different density, speed, or grade within the LatticeSC family, performance and utilization may vary. 12

Technical Support Assistance Hotline: 1-800-LATTICE (North America) +1-503-268-8001 (Outside North America) e-mail: techsupport@latticesemi.com Internet: www.latticesemi.com Revision History Date Version Change Summary March 2009 01.0 Initial release. 13