Core Name | Description | Performance and Area |
---|---|---|
Convolution 3x3 Coefficients |
A general coefficient convolution core that incorporates a library of routines to perform 1D and 2D convolution for both real and complex data and is able to apply several effects to a given image. |
|
Convolution 5x5 Coefficients |
Same as above but with a 5x5 window of coefficients. |
|
Convolution 7x7 Coefficients |
Same as above but with a 7x7 window of coefficients. |
|
Emboss | Embossing is the process of creating a three-dimensional image in paper materials through heat or pressure. For digital images, the same visual effect can be achieved. Reference: Image Embossing |
|
Gaussian Blur | Gaussian blur describes blurring an image by a Gaussian function. It is a widely used effect in graphics software, typically to reduce image noise and reduce detail. The visual effect of this blurring technique is a smooth blur resembling that of viewing the image through a translucent screen. Reference: Gaussian Blur |
|
Motion Blur | A special coefficient convolution filter applied to an image to blur the motion of an image. Reference: Motion Blur |
|
Sharpen | A special coefficient convolution filter applied to an image to sharpen the attributes of that image. Reference: Unsharp Masking |
|
Computer Vision OpenCV Library | Interested in a computer vision core? If you can find it within the open-source OpenCV library, then we can create it. Reference: Computer Vision OpenCV |
|
Image Processing FPGA Cores
Image processing is any form of signal processing for which the input is an image, such as photographs or frames of video, and the output is either an image or a set of characteristics or parameters related to the image. Most image-processing techniques involve treating the image as a two-dimensional signal and applying standard signal-processing techniques to it. Examples of Image Processing: One example of image processing is filtering. Filtering an image is performed by altering, or convolving, the image by applying an n x n matrix of signed integers, known as the filter, to every color channel (each RGB) of every pixel. The size of a filter is usually 3x3, 5x5, 7x7 or even 9x9, but can be even larger if desired. A 5x5 convolution requires over 100 computations per pixel. Even at 640 x 480 resolutions, this requires over 30 million computations. For video at 30 frames/second, this requires over 920 million computations. For RGB images, the computations are performed on each color, resulting in over 2.7 billion computations per second. Concurrent EDA has the capability to rapidly create image processing cores that operate at 1 to 100 billion operations per second. The following are completed cores that implement image processing functions and illustrate the types of cores that Concurrent EDA can create using our automation tools.