Hardware Implementation of Rgb To YCbCr Accelerator for Face Detection

Download Full-Text PDF Cite this Publication

Text Only Version

Hardware Implementation of Rgb To YCbCr Accelerator for Face Detection

M.Jyothi Poorna1 ,M.V. Ganeswara Rao2 , Dr.P.Rajesh Kumar3 , Dr. A.Mallikarjuna Prasad4 Dept of Electronics and communication Engineering 1, 2, 3, 4

Shri Vishnu Engineering College for women1, 2, PVP Siddhartha Institute of Technology3, JNTU College of Engg.4,

Bhimavaram1, Vijayawada2, Kakinada3

  1. Abstract In recent years Face detection in image sequence has been an active research area in the computer vision field due to its potential applications such as monitoring and surveillance, human computer interfaces, smart rooms, intelligent robots, and biomedical image analysis. Face detection is based on identifying and locating a human face in images regardless of size, position, and condition. In this paper we implemented a RGB to YCbCr Accelerator for Face detection because processing an image in the RGB colour space, with a set of RGB values for each pixel is not the most efficient method. To speed up some processing steps many video compression and Communication techniques use luminance/chrominance colour spaces, such as YCbCr, making a mechanism for converting between formats necessary. Therefore, techniques which efficiently implement this conversion are desired.

    The proposed architecture of RGB to YCbCr Accelerator for Face detection has been designed using Verilog language and simulated using ISE simulator and implemented in Xilinx FPGA module.

    Keywords: Face detection, luminance, chrominance Xilinx, FPGA, verilog, ISE, simulator


    Color space conversion has become an integral part of image processing and transmission. Real time images and video are stored in RGB color space [1]. Transmitting images in RGB color space is not practical as their bandwidth requirement is very high. To overcome this problem and minimize the bandwidth requirement images in RGB color space are converted into other color space such as YUV, YIQ and YCbCr and then transmitted. The choice of the colour space is dependent on the application and their requirement such as less storage, bandwidth or computation in analog or digital domains [2]. In this paper we present the architecture of a color conversion module for efficient implementation of color space conversion from RGB to YCbCr color space using FPGA base system. The Block diagram for the proposed system is shown in Fig.1. The system consists of a RGB to YCbCr conversion module is designed using verilog and implemented using FPGA.RGB to YCbCr conversion module is interfaced to the real world using MATLAB. The generated pixels are given as an input to RGB to YCbCr conversion module.

    Input Image


    RGB to YCbCr Converter

    Fig.1 Block Diagram of the system

    Colour Space Transformation:

    Different color spaces have historically evolved for different applications. A certain choice is better because it required less storage, bandwidth or computation in analog or digital domains. [3] The objective is to have all inputs be converted to a common color space before algorithms and processes are executed. Converters are useful for number of applications including image processing and filtering. The converter basic function is to convert from one color space to another. This paper describes one such conversion.

    RGB Color Space

    The RGB color space consists of the three additive primaries: red, green and blue. Spectral components of these colors combine additively to produce a resultant color. The RGB model is represented by a 3 dimensional cube with red green and blue at the corners on each axis (Figure 2). Black is at the origin. White is at the opposite end of the cube. The gray scale follows the line from black to white.

    Fig. 2 RGB Colour Cube

    In a 24-bit color graphics system with 8 bits per color channel, red is (255, 0, 0). On the color cube, it is (1, 0, 0). The RGB model simplifies the design of computer graphics systems but is not ideal all applications. The red, green and blue color components are highly correlated. This makes it difficult to execute some image processing

    algorithms. Many processing techniques, such as histogram equalization, work on the intensity component of an image only.

    YCbCr Color Space

    YCbCr color space has been defined in response to increasing demands for digital algorithms in handling video information, and has since become a widely used model in a digital video. It belongs to the family of television transmission color spaces. The family includes others such as YUV and YIQ. YCbCr is a digital color system, while YUV and YIQ are analog spaces for the respective PAL and NTSC systems. These color spaces separate RGB (Red-Green-Blue) into luminance and chrominance information and are useful in compression applications however the specification of colors is somewhat unintuitive. The Recommendation 601 specifies

    8 bit (i.e. 0 to 255) coding of YCbCr, whereby the luminance component Y has an excursion of 219 and an offset of +16. This coding places black at code 16 and white at code 235.

    In doing so, it reserves the extremes of the range for signal processing foot room and headroom. On the other hand, the chrominance components Cb and Cr have excursions of +112 and offset of +128, producing a range from 16 to 240 inclusively.


The design and implementation of the color conversion module is explained in this section. The color conversion module was designed using verilog and then synthesized to a target FPGA [6]

Xilinx RGB to YCbCr Core Generator:

The Xilinx CORE Generator system generates and delivers parameterizable cores optimized for Xilinx FPGAs. It is used to design high-density Xilinx FPGA devices and achieves high performance results, while at the same time, reducing the design time. The CORE Generator is included in ISE Xilinx Foundation, with a variety of cores memories and storage elements, math functions, DSP functions, and a variety of basic elements. The RGB to YCbCr and the YCbCr to RGB cores are generated by the Xilinx Core Generator14.1 [7, 8, 9]

Converting from RGB to YCbCr Color Space

Decomposing an RGB color image into one luminance image and two chrominance images is the method that has been used in the most commercial applications such as face detections, JPEG and MPEG imaging standards [4]. This basically is YCbCr color space. Y has the range of 16 to 235 and Cb and Cr have the range of 16 of 240 [5]. Decomposing RGB color Space to YCbCr (as shown in Figure 1) is suitable because of the non- correlation among the spaces of YCbCr, so each space can be analyzed separately. Moreover Cr and Cb spaces can be compressed more heavily than Y space to get better compression ratio [4]. The JPEG & MPEG encoders always start with RGB to YCbCr conversion and the last stage of decoder is the YCbCr to RGB conversion unit.

The basic equations to convert between RGB and

YCbCr are:

Y = 0.257R+ 0.504G + 0.098B + 16 Cb = 0.148R 0.291G+ 0.439B + 128

Cr = 0.439R 0.368G 0.071B + 1

Fig.3 Pin Diagram of RGB to YCbCr Converter


Simulated and Synthesis Report:

The project was implemented using Model Sim XE simulator and was synthesized using Xilinx ISE14.1. The FPGA used for implementation

Fig: 4 RTL Schematic of YCbCr Converter

The simulate results of individual colour conversion from RGB colour space to YCbCr colour space is presented in this section. Fig. 4 shows the simulated results

Fig. 5 Simulated Results of RGB to YCbCr Converter


Design and Architecture of RGB to YCbCr Accelerator for Face detection is designed in verilog and implemented in FPGA. Processing an image in the RGB color space, with a set of RGB values for each pixel is not the most efficient method. Hence by using RGB to YCbCr accelerator module each pixel of RGB is converter in to YCbCr


  1. Keith Jack, Video Demystified: A Handbook for the Digital Engineer, LLH Technology Publishing, Third Edition, 2001.

  2. F.Bensaali, A. Amira and A. Bouridance, Accelerating matix product on reconfigurable hardware for image processing applications, IEE Proceedings on Circuits and Devices Systems, vol. 152, No. 3, June 2005.

  3. F.Bensaali, A.Amira and A.Bouridane. "Design and Implementation of Efficient Architectures for Color Space Conversion, ICGST-GVIP Journal, Volume 5, Issue1, December 2004.

  4. N. Tiwari and S. C.Reddy, "Performance Measurement of a Fully Pipelined JPEG"Codec on Emulation Platform", Advance Computing Conference (IACC), 2010 IEEE 2nd International 978-1-4244-4791-6/10, pp. 167 – 171.

  5. T.S. Wong, C. A. Bouman, Fellow, IEEE, I. Pollak, and Z. Fan, "A Document Image Model and Estimation Algorithm for Optimized JPEG Decompression", IEEE Transactions on Image Processing, Vol. 18, No. 11, Nov. 2009.

  6. F. Bensaali and A. Amira "Design and Implementation of Efficient Architectures for Color Space Conversion ICGST-GVIP Journal, Volume 5, Issue1, December 2004.

  7. B. Payette, Color Space Converter: RGB to YCbCr, Xilinx Application Note, XAPP637, V1.0, September 2002.

  8. Xilinx,"YCrCb to RGB Color-Space Converter v1.0", Product Specification, DS659 March 24, 2008.

  9. Xilinx," RGB to YCrCb Color-Space Converter v1.0 ", Product Specification, DS657 March 24, 2008.

Leave a Reply

Your email address will not be published. Required fields are marked *