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.

FPGA Image Processing Cores

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.
  • 35 Giga-ops/sec
  • 200 MHz
Convolution
5x5 Coefficients
Same as above but with a 5x5 window of coefficients.
  • 78 Giga-ops/sec
  • 200 MHz
Convolution
7x7 Coefficients
Same as above but with a 7x7 window of coefficients.
  • 144 Giga-ops/sec
  • 200 MHz
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
  • 35 Giga-ops/sec
  • 200 MHz
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
  • 35 Giga-ops/sec
  • 200 MHz
Motion Blur A special coefficient convolution filter applied to an image to blur the motion of an image.

Reference: Motion Blur
  • 35 Giga-ops/sec
  • 200 MHz
Sharpen A special coefficient convolution filter applied to an image to sharpen the attributes of that image.

Reference: Unsharp Masking
  • 35 Giga-ops/sec
  • 200 MHz
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
  • Multiple Giga-ops/sec
  • 30+ frames/sec
  • 200 MHz

Contact

Telephone
412.687.8800
Address
5001 Baum Blvd Ste 640
Pittsburgh PA 15213
Email
info@concurrenteda.com