High level abstraction method for implementing Image Processing Techniques on FPGA R.Srinivasa Rao, Department of Electronics Engineering, Pondicherry University, Pondicherry, India, srinuindia.123@gmail.com R. Nakkeeran, Department of Electronics Engineering, Pondicherry University, Pondicherry, India, nakkeeran.dee@pondiuni.edu.in AbstractTo implement the image processing techniques on FPGA, line by line Hardware Description Language Programming is time consuming and inefficient. High level abstract hardware oriented parallel programming method can bridge this gap. This paper proposes a method that uses a graphical user interface that combines MATLAB, Simulink and Xilinx System Generator (XSG) and explores important aspects concerned to hardware implementation. In this paper image processing operations like image negative, color to gray scale conversion, image enhancement and image edge detection using XSG on Spartan-3E FPGA are implemented. Keywords Image Processing, Xilinx System Generator, Simulink, FPGA I. INTRODUCTION AND MOTIVATION The handling of digital images is a subject of widespread interest. Image processing is used to modify pictures to improve them (enhancement, restoration), extract information (analysis, recognition) and change their structure (composition, image editing) [1]. FPGAs are increasingly used in modern imaging applications [2,3] namely image filtering , medical imaging , image compression and wireless communication. The need to process the image in real time, leads to implement them in hardware, which offers parallelism, thus significantly reduces the processing time [4]. The drawback of most of the methods is that they use a high level language for coding, which requires thousands of coding lines for image processing applications which is inefficient as it takes much time. In order to solve this problem, a tool called Xilinx System Generator(XSG) [5-7], with graphical interface under the MATLAB-Simulink [8] is used which makes it very easy to handle with respect to other software for hardware description. The rest of the paper is organized as follows. Section II discusses the requirements for the proposed approach and the different types of blocks used in the design. Section III discusses the basic block diagram of image processing technique. Section IV discusses the design of the various image processing techniques implemented in this paper using Xilinx blocks. Section V discusses the hardware implementation. Section VI discusses the results of all techniques and section VII discusses the conclusion. II. SYSTEM REQUIREMENTS FOR THE PROPOSED APPROACH To design the proposed approach by using XSG a compatible MATLAB and Xilinx ISE software versions required. XSG uses Simulink as the development environment. The entire design uses two kinds of blocks. The blocks in Xilinx System Generator also called ‘Xilinx Blocks’ [5] operate with Boolean values or arbitrary values in fixed point, as they are used to design hardware whereas Simulink blocks [8] works with numbers of double-precision floating point and they are used to give the image in the desired format to the Xilinx blocks. The connection between Xilinx blocks and Simulink blocks are gateway blocks. XSG has an integrated design flow to generate bit stream file directly necessary for programming the FPGA. XSG automatically generates VHDL/Verilog code, a draft of the ISE model being developed and maps hardware, in addition to generating a user constraint file (UCF), simulation, test bench and test vectors among other things . III. SCHEMATIC OF IMAGE PROCESSING TECHNIQUE The entire operation for any image processing technique using Simulink and Xilinx blocks mainly goes through three phases [3] as shown in Fig.1. Fig.1 Basic block diagram A. Image pre processing blocks: As image is two dimensional (2D) arrangement, to meet the hardware requirement the image should be preprocessed and given as one dimensional (1D) vector. The model based design used for image pre processing is shown in Fig.2. To process 2D image it is converted into 1D by using convert 2D to 1D block. Frame conversion block sets output signal to frame based data and provided to unbuffer block which converts this frame to scalar samples at a higher sampling rate. Image pre processing blocks Any image processing technique using xilinx blocks Image post processing blocks IEEE 2nd International Conference on Knowledge Collaboration in Engineering March 27- 28, 2015 978-1-4799-8619-4/15/$31.00 ©2015 IEEE