Speed up Real-Time Image Processing With GPU Software
With the Fastvideo SDK data processing is done on Nvidia GPUs to speedup the performance. From tests with Nvidia Quadro RTX 6000 or GeForce RTX 2080ti it can be seen that GPU-based raw image processing is very fast and it could offer high image quality at the same time. The total performance could reach 4GPix/s for color cameras.
Machine vision cameras are widely used in industry, science, and robotics. However, when working with them, the same question invariably arises: „How to process the data received?“ But why does it arise at all? The point is that cameras usually transmit raw data (RAW) at high frame rate, which takes up a lot of memory and needs to be converted to the required image format in real time. Image processing algorithms must provide the quality and speed necessary for the task at hand. Unfortunately, it is sometimes not easy to ensure both quality and speed at the same time. That’s why, whenever there’s a task which requires processing a lot of images in real time, experts put a high priority on optimizing computer vision-related algorithms. It’s even more important when there’s a limited budget, or the physical size or power consumption of the device is constrained for practical reasons. Generally, high-quality algorithms that perform computations on Intel/AMD processors do well with this task. However, there are special cases: the processing of images from high data rate machine vision cameras, which is the case for high image resolution or a high frame rate or multi-camera system with real-time image processing. For such situations, the capabilities of a CPU are not enough. CPU just can’t handle the huge data stream quickly enough (for example, when it’s dealing with gigapixels per second), and this leads to the unavoidable loss of some data. Unfortunately, it’s difficult to speed things up further on a CPU without a trade-off for quality. So, how can we speed up image processing without losing quality?