9Vol41No2

Embed Size (px)

Citation preview

  • 8/11/2019 9Vol41No2

    1/6

    Journal of Theoretical and Applied Information Technology31 st July 2012. Vol. 41 No.2

    2005 - 2012 JATIT & LLS. All rights reserved .

    ISSN: 1992-8645 www.jatit.org E-ISSN: 1817-3195

    201

    FPGA IMPLEMENTATION OF POINT PROCESSES USINGXILINX SYSTEM GENERATOR

    1 V.ELAMARAN , 2 G.RAJKUMAR1Asst Prof., Department of ECE, School of EEE, SASTRA University, Thanjavur2Asst Prof., Department of ECE, School of EEE, SASTRA University, Thanjavur

    E-mail: [email protected] , [email protected]

    ABSTRACT

    Application areas of signal processing have grown dramatically in importance in recent times, in parallelwith the growth of powerful and low-cost processing chips. This has led, in turn, to many new applications,including multimedia delivery and hand-held communications delivery. Image processing is one animportant application among them, which has a strong mathematical basis. Specifically authorsdemonstrate point processes which use only the information in individual pixels to produce new images.Arithmetic operations, XOR operations, histograms, contrast stretching and intensity transformations areimplemented using Xilinx System Generator (XSG). XSG is a useful tool to understand fundamentalDigital Signal Processing (DSP) algorithms for Field Programmable Gate Array (FPGA) implementation.FPGAs provide a better platform for real-time algorithms on application-specific hardware withsubstantially greater performance than programmable DSPs. The study reveals that the hardwareimplementation results which are presented here will be extended to perform hardware-in-the-loopsimulation.

    Keywords: Image Processing, Point Processing, Xilinx System Generator, FPGA.

    1. INTRODUCTION

    The application domain of DSP over the pastdecade expanded because of the advance in VLSItechnology. Application Specific IntegratedCircuits (ASIC) and programmable DSP processorswere the implementation choices for many DSPapplications. But now, reconfigurable computingare being considered for system implementationsbecause of the programmable of software and thefunctional efficiency of hardware. FPGAs are anattractive choice due to their low energy dissipationper unit computation, high performance, andreconfigurability. The parallel computing power ofthe FPGA is extremely useful in the modern worldof demanding applications like DSP, image andvideo processing etc. To create custom DSP datapaths in FPGA , System Generator [1,2] is used as ahigh level well suited design tool.

    In todays modern computers, mediainformation such as audio, images, and video havecome to be necessary for daily business operationsand entertainment. In this paper, we study digital

    images and its processing techniques, specificallypoint processing algorithms. Digital images areelectronics snapshots taken of a scene or scannedfrom documents, such as photographs, manuscripts,printed texts, and artwork. The digital image issampled and mapped as a grid of dots or pictureelements (pixels). The digital image is pictureinformation in digital form. The image can befiltered to remove noise and obtain enhancement[3]. It can also be transformed to extract features forpattern recognition. The image can be compressedfor storage and retrieval, as well as transmitted viaa computer network or a communication system.Digital image processing has found application inwide variety of fields of human endeavor. There arenumber of well defined processes which go to makeup a typical image application. Acquisition,Enhancement, Restoration, Segmentation andAnalysis are the steps needed by just about everyapplication which involves image processing [4].

    Once images are inside the computer system, ormore specifically, once they are read inside aprogram, the images are nothing but matrices.

  • 8/11/2019 9Vol41No2

    2/6

    Journal of Theoretical and Applied Information Technology31 st July 2012. Vol. 41 No.2

    2005 - 2012 JATIT & LLS. All rights reserved .

    ISSN: 1992-8645 www.jatit.org E-ISSN: 1817-3195

    202

    Hence, all the operations that can be applied tomatrices should theoretically be applicable to theimages as well. Image arithmetic is theimplementation of standard arithmetic operations,such as addition, subtraction, multiplication, anddivision for images. Image arithmetic has manyuses in image processing, both as a preliminary stepin more complex operations and by itself [5].

    DSP functions are implemented on two primaryplatforms such as Digital Signal Processors (DSPs)and FPGAs [6]. FPGA is a form of highlyconfigurable hardware while DSPs are specializedform of microprocessors. Most engineers preferFPGA over DSP because of massive parallelprocessing capabilities inherent to FPGA and timeto market make it the better choice. Since FPGAscan be configured in hardware, FPGAs offercomplete hardware customization whileimplementing various DSP applications.

    System Generator [7] is a DSP design tool fromXilinx that enables the use of the Mathworksmodel-based design environment Simulink forFPGA design. It is a system level modeling tool inwhich designs are captured in the DSP friendlySimulink modeling environment using Xilinxspecific Blockset. All of the downstream FPGAimplementation steps including synthesis and placeand route are automatically performed to generatean FPGA programming file. System Generatorprovides many features such as System ResourceEstimation to take full advantage of the FPGA

    resources, Hardware Co-Simulation [8] andaccelerated simulation through hardware in the loopco-simulation; which give many orders ofsimulation performance increase [9,10,11].

    This paper is organized as follows. Section 2focuses on the fundamentals of all point processesin image processing and section 3 shows thesimulation results using Xilinx System Generatorfor the models designed. Conclusions are presentedin the section 4.

    2. POINT PROCESSES

    Point processes are the simplest and basic imageprocessing operations. They operate on a pixelbases solely on that pixels value. Although pointoperations are the simplest, they contain some ofthe most powerful and widely used of all imageprocessing operations. They are especially useful inimage pre-processing, where an image is requiredto be modified before the man job is attempted.

    This section contains an important pointprocessing operations such as arithmetic operations,XOR operations, histograms with equalization,

    contrast stretching and intensity transformationsalong with the implementations which are doneusing XSG.

    2.1 Arithmetic Operations

    The arithmetic operations include adding,subtracting, dividing, and multiplying pixels by aconstant value. Addition and subtraction can adjustthe brightness of the image [9]. Fig. 1. shows theXSG blocks involved while adding and subtracting40 from the image. Fig. 2. shows the results of animage which has a size of 512 x 512.

    Figure 1 : XSG blocks for addition and subtraction.

    (a) (b)

    (c)

    Figure 2 : (a) Original 512x512 image (b)image+40 (c) image -40.

    Similarly, multiplication and division bydifferent values can adjust the contrast of theimage.

  • 8/11/2019 9Vol41No2

    3/6

    Journal of Theoretical and Applied Information Technology31 st July 2012. Vol. 41 No.2

    2005 - 2012 JATIT & LLS. All rights reserved .

    ISSN: 1992-8645 www.jatit.org E-ISSN: 1817-3195

    203

    2.2 XOR Operations

    The Exclusive OR function sets bits that are thesame in each operand to 0 and bits that are differentto 1. All pixels of a certain value can be found byapplying XOR function. In computers, a cursor forthe mouse can be generated by applying XORfunction frequently used on graphic systems.Almost a negative image produced by XOR with255 to the image. Fig. 3. shows the results of animage with XSG block.

    Figure 3 : Image XORed with 255 and XSG blocks.

    2.3 Histogram Stretching (Contrast Stretching)

    The contrast of an image is its distribution oflight and dark pixels. To stretch a histogram,contrast stretching is applied to an image to fill thefull dynamic range of the image. We can stretch outthe gray levels in the center of the range byapplying piecewise linear function according to theequation.

    new pixel = (12/4) (old pixel-5) + 2 (1)

    where new pixel is its result after thetransformation. Fig. 4. and Fig. 5. shows the XSGblocks for the above contrast stretching to the fingerprint image and the results respectively.

    Figure 4 : XSG blocks for contrast stretching.

    (a) (b)

    Figure 5 : (a) Original finger print image (b) imageafter contrast stretching .

    We demonstrate an another piecewise linearfunction which is as follows:

    j = ( (255-193) / (255-160) ) (i-160) + 192 (2)

    where i is the original gray level and j is its resultafter the transformation. Fig. 6. and Fig. 7. shows

    the XSG blocks for the above contrast stretching tothe finger print image and the results respectively.

    Figure 6 : XSG blocks for contrast stretching

    Figure 7 : Image after transformation .

    2.4 Intensity Transformations

    Intensity transformations are point processes thatconvert an old pixel into a new pixel based on somepredefined function. These transformations are

    easily implemented with simple look-up tables.2.4.1 Negative Transformation

    The negative transform exchanges dark valuesfor light values and vice versa. This is thecomplement of a grayscale image like aphotographic negative. The equation is as follows :

    new pixel = 255 old pixel (3)

  • 8/11/2019 9Vol41No2

    4/6

    Journal of Theoretical and Applied Information Technology31 st July 2012. Vol. 41 No.2

    2005 - 2012 JATIT & LLS. All rights reserved .

    ISSN: 1992-8645 www.jatit.org E-ISSN: 1817-3195

    204

    Fig. 8. and Fig. 9. shows the XSG blocks for theabove negative transformation to the finger printimage and the results respectively.

    Figure 8 : XSG blocks for negative transformation.

    Figure 9 : Negative image.

    2.4.1 Image Segmentation using Threshold

    Image segmentation can be used to separatepixels associated with objects of interest from theimage background. This is an important step inmany imaging applications of automated analysisand robotics. We demonstrate segmentation on asimple pixel-by-pixel basis using thresholddecisions. We use histogram of a image todetermine the threshold value . Fig. 10. shows theoriginal cameraman image and histogram resultHistogram shows that the object and backgroundare well-separated. We use Mcode block and use 70as a threshold in our demonstration. Fig. 11. andFig. 12. shows the matlab code for Mcode blockand the image after segmentation resultsrespectively.

    Here we get the foreground portion as a whiteimage.

    Figure 10 : Image and histogram.

    Figure 11 : XSG blocks for segmentation.

    The Mcode block description is as follows :

    function z = newpixel(x,y)

    if x>y

    z = x;

    else

    z = 1;

    end

    Figure 12 : Image after segmentation.

    2.4.3 Range highlighting Transformation

    An intensity transform can also highlight a rangeof pixels while keeping others constant. Fig.13.shows the Xilinx blocks implementation and theresulting image.

    function z = newpixelone(x,y,c)

    if (x > y) & (x < c)

    z = x;

    else

    z = 1;

    end

  • 8/11/2019 9Vol41No2

    5/6

    Journal of Theoretical and Applied Information Technology31 st July 2012. Vol. 41 No.2

    2005 - 2012 JATIT & LLS. All rights reserved .

    ISSN: 1992-8645 www.jatit.org E-ISSN: 1817-3195

    205

    Figure 13 : Xilinxs blocks and resulting image.

    2.4.4 Parabola Transformation

    The two formulas for the parabolatransformation are as follows:

    new pixel = 255 255 ((old pixel/128) -1) 2 (4)

    and

    new pixel = 255 ((old pixel/128) -1) 2 (5)

    Xilinx blocks are connected for the aboveequations and displayed in Fig. 14. and Fig. 15.Both the results are observed and produced in Fig.16. Similarly, solarize transformation, iso-intensitycontouring transformation and bit-clippingtransformation can also be implemented [8].

    Figure 14 : XSG blocks for Equation (4).

    Figure 15 : XSG blocks for Equation (5).

    (a) (b)

    (c)

    Figure 16 : (a) Original image (b) Parabola Equation (4) (c) Parabola Equation (5).

    3. SIMULATION RESULTS

    The hardware implementation results areproduced using Xilinx Spartan 3E FPGA. Theresource utilization summary is obtained for theparabola transformation (Fig.16 and Fig.17) resultsof Equation 4 and 5 respectively in Fig.17 andFig.18.

    Figure 17 : XSG blocks for Equation (5).

  • 8/11/2019 9Vol41No2

    6/6

    Journal of Theoretical and Applied Information Technology31 st July 2012. Vol. 41 No.2

    2005 - 2012 JATIT & LLS. All rights reserved .

    ISSN: 1992-8645 www.jatit.org E-ISSN: 1817-3195

    206

    Figure 18 : XSG blocks for Equation (5).

    4. CONCLUSIONS

    In this paper, a real-time image processingalgorithms are implemented on FPGA.Implementation of these algorithms on a FPGA ishaving advantage of using large memory andembedded multipliers. Advances in FPGAtechnology with the development of sophisticatedand efficient tools for modeling, simulation andsynthesis have made FPGA a highly useful platform[7].

    The study reveals that implementation of pointprocessing algorithms using Xilinx SystemGenerator can be extended to applications likebackground estimation in video, image filteringboth in spatial and frequency domains and digitalimage watermarking applications, etc. Theimplementation further can be extended to areaprocesses and frame processes in the field of digitalimage processing. The above experiments may alsobe performed with hardware-in-the loop verificationand co-simulation approaches.

    REFRENCES

    [1] Ana Toledo Moreo, Pedro Navarro Lorente,F.Soto Valles, Juan Suardiaz Muro, CarlosFernandez Andres, Experiences ondeveloping computer vision hardwarealgorithms using Xilinx system generator,Microprocessors and Microsystems, vol.29(8-9), pp.411-419, Nov 2005.

    [2] Alba M.Sanchez G, Richardo Alvarez G, SullySanchez G, FCC and FCE BUAP, Architecture for filtering images using XilinxSystem Generator, International Journal onMathematics and Computers in Simulation,vol.1(2), pp.101-107, May 2007.

    [3] Li Tan, Digital Signal Processing Fundamentals and Applications, Elsevier,2008.

    [4] Rhys Lewis, Practical Digital ImageProcessing, Ellis Horwood Series in Digitaland Signal Processing, 1991.

    [5] C.H.Chen, Uvais Quidwai , Digital ImageProcessing : An Algorithmic Approach withMATLAB, CRC Press, 2009.

    [6] Ownby,M., Mahmoud,W.H., A designmethodology for implementing DSP withXilinx System Generator for Matlab, IEEEInternational Symposium on System Theory,pp.404-408, 2003.

    [7] Xilinx Inc., System Generator for DigitalSignal Processing:, http://www.xilinx.com /tools / dsp.htm.

    [8] T.Saidani, D.Dia, W.Elhamzi, M.Atri, R.Tourki,, Hardware Co-simulation for VideoProcessing Using Xilinx System Generator,Proceedings of the World Congress onEngineering, vol.1, Jun 2009.

    [9] Randy Crane, A Simplified Approach toImage Processing Classical and ModernTechniques in C, Prentice Hall, 1997.

    [10] P. Karthigaikumar, K.Jaraline Kirubavathy,K.Baskaran, FPGA based audiowatermarking Covert communication,Microelectronics Journal, vol.42, pp.778-784,Feb 2011.

    [11] Ana Toledo, Cristina Vicente-Chicote, JuanSuradiaz and Sergio Cuenca, Xilinx SystemGenerator Based HW Components for RapidPrototyping of Computer Vision SW/HWSystems, Lecture Notes in ComputerScience, vol. 3522, pp.667-674, 2005.