27-07-2012, 11:22 AM
FPGA implementation of Area Pixel Scaling For colour images
FPGA implementation of Area Pixel Scaling For colour images.doc (Size: 138 KB / Downloads: 80)
Abstract
Image scaling is a very important technique and has been widely used in many image processing applications. This paper presents an edge-oriented area-pixel scaling processor for RGB colour images with SIMD(Single Instruction Multiple Data) 2-D convolver. An edge catching technique is adopted to preserve the image edge features effectively so as to achieve better image quality. Finally we are implementing the architecture in a semi custom device known as FPGA.
Introduction
Image scaling is widely used in many fields ranging from consumer electronics to medical imaging. It is needed when the resolution of an image generated by a source device is different from the screen resolution of a target display. The most simple and widely used scaling methods are the nearest neighbor and bilinear techniques. In nearest neighbor function, the value of the new point is taken as the value of the coordinate point which is located nearest to the new point. Advantage of this method is high frequency response. In bilinear technique we are considering four neighbor pixels at a time. In bicubic interpolation, we are considering more number of pixels at time and it leads to higher complexity. The weakness of bilinear and bicubic is blur effect and bad high frequency response. Recently, many other methods using polynomial, adaptive, or correlative property have been proposed. Winscale algorithm, is a new resampling method,which uses domain filtering utilizing area coverage of original pixels for calculating new pixels of a scaled image. This method has good high frequency characteristics and better image quality than bilinear method. This method is suitable for digital display devices in many aspects. A scaling method that takes the advantage of area pixel and
edge features for monochrome images also has been presented in literature.
Proposed Design
The scaling algorithm is based on area pixel scaling rather than a point pixel scaling. By considering the pixel as a small rectangular area and finding the intensity of the target pixels in terms of area. This image scaling algorithm consists of convolution process. So it is possible to make scaling algorithm more faster by including SIMD 2-D convolution into the algorithm. Edge features are also considering during the area calculation and tuning the area accordingly. For making the edge extraction more efficient, we are checking it with different edge detection algorithms and select the best solution. The scaling algorithm is as follows
Determine the resolution of the target image.
Use the target pixel as a window function to calculate the intensity of the same from the source pixel.
Include the SIMD architecture for convolution. SIMD convolver adapt their architecture in accordance with different bit resolution.
Extract the edge features, if the edges are in the area of interest, change the area calculation accordingly. (In literature, they have been used the sigmoidal model for edge detection. Here we can use any other model if possible)
Area based Intensity Calculation
Intensity of the scaled pixel residing at (k,l) in fig(a) is calculated as
Where w(m, n),w(m+1,n), w(m, n+1) and w(m+1,n+1) represents the weight factors of four neighboring pixel for the current target pixel at (k,l). Fs(m,n) are intensities of four neighboring pixels. W(m,n) related to overlapped area.
SIMD 2-D Convolver
An SIMD machine exploits a property of the data stream called data parallelism. In this context, we get data parallelism when we have a large mass of data of a uniform type that needs the same instruction performed on it. The main advantage of SIMD is that processing multiple data elements at the same time, with a single instruction, can dramatically improve performance(in terms of seepd and reduced complexity) The SIMD modules adapt their structures to different bit resolutions without requiring power and time consuming reconfiguration.
Application of the Algorithm for RGB Images
Separate the colour image into Red, Blue and Green components.
Perform the scaling for three components through three separate channels..
Combine three components to get the scaled colour image.
FPGA Implementation
Why FPGA? FPGA is having massive parallelism and high computational density so that it can be used for real time image processing very efficiently.
Implement the scaling algorithm by using HDL.
We can use vertex FPGA boards to implemement the algorithm.
Software/Hardware Needed
MTLAB software..
Xilinx ISE.
Modelsim SE
Vertex FPGA Boards.
Related Works
Examine the utility of the method for real time image processing.
Comparison of the method with earlier methods.
Find the methods for reducing scale up/down error.
Conclusion
In this paper, basic idea of implementing edge oriented area pixel scaling with SIMD 2-D convolver for RGB colour images and its FPGA implementation is presented. By including SIMD 2-D convolver, we can increase the speed and also reduce the computational complexity. By checking the different edge detection for extracting the edge, we will be selecting the best method in terms of better image quality and increased speed.