Fastvideo SDK vs NVIDIA NPP Library

Updated:

Author: Fyodor Serzhenko

Why is Fastvideo SDK better than NPP for camera applications?

What is Fastvideo SDK?

NVIDIA NPP provides individual GPU image primitives, while the Fastvideo SDK provides a complete camera ISP pipeline that stays in GPU memory from RAW acquisition to compressed output. This article compares the two on real imaging tasks, where keeping the whole pipeline on the GPU — not just single functions — is what determines throughput.

 

fastvideo sdk vs nvidia npp library

Who are Fastvideo SDK customers?

Fastvideo SDK is compatible with Windows/Linux/ARM and is mostly intended for camera manufacturers and system integrators developing end-user solutions containing video cameras as a part of their products.

The other type of Fastvideo SDK customers are developers of new hardware or software solutions in various fields: digital cinema, machine vision and industrial, transcoding, broadcasting, medical imaging, geospatial, 3D, AR/VR, DL, AI, etc.

All the above customers need faster image processing with higher quality and better latency. In most cases CPU-based solutions are unable to meet such requirements, especially for multicamera systems.

Customer pain points

According to our experience and expertise, when developing end-user solutions, customers usually have to deal with the following challenges.

Fastvideo SDK business benefits

Fastvideo SDK as a part of complex solutions allows customers to gain competitive advantages.

Fastvideo serves customers as a technology advisor in the field of fast image processing: the team of experts provides end-to-end service to customers. That means that all customer questions regarding Fastvideo SDK, as well as any other technical questions about fast image processing are answered in a timely manner.

fastvideo sdk image processing

Fastvideo SDK vs NVIDIA NPP comparison

NVIDIA NPP can be described as a general-purpose solution, because the company implemented a huge set of functions intended for applications in various industries, and the NPP solution mainly focuses on various image processing tasks. Moreover, NPP lacks consistency in feature delivery, as some specific image processing modules are not presented in the NPP library. This leads us to the conclusion that NPP is a good solution for basic camera applications only. It is just a set of functions which users can utilize to develop their own pipeline.

AspectNVIDIA NPPFastvideo SDK
LevelPrimitives (building blocks)Complete camera ISP + codecs
Camera ISP (white balance, demosaic, denoise, tone)Assemble from primitivesBuilt in, end-to-end
DemosaicingBilinear primitiveFour high-quality algorithms
Image codecs (JPEG, JPEG2000, RAW Bayer)Not includedBuilt in
Data pathYou manage buffers between callsStays in GPU memory across the pipeline
PrecisionPer-primitive16/32-bit pipeline
IntegrationCombine functions yourselfLink components and call the pipeline

Fastvideo SDK, on the other hand, is designed to implement a full 16/32-bit image processing pipeline on GPU for camera applications (machine vision, scientific, digital cinema, etc). Our end-user applications are based on Fastvideo SDK, and we collect customer feedback to improve the SDK’s quality and performance. We are armed with profound knowledge of customer needs and offer an exceptionally reliable and heavily tested solutions.

Fastvideo uses a specific approach in Fastvideo SDK which is based on components (not on functions as in NPP). It is easier to build a pipeline based on components, as the components' input and output are standardized. Every component executes a complete operation, and it can have a complex internal architecture, whereas NPP only uses several functions. It is important to emphasize here that developing an application using built-in Fastvideo SDK is much less complex than creating a solution based on NVIDIA NPP.

The Fastvideo JPEG codec and the rest of the SDK have been optimized and hardened over many years. On an NVIDIA GeForce RTX 4090, individual modules reach about 5500 fps JPEG encoding (Full HD) and 3800 fps (4K), and up to about 2100 fps visually-lossless JPEG2000 (2K, batch mode); the full RAW-to-RGB pipeline processes a 65 MPix frame at about 60 fps in GPU memory. Every figure is reproducible — see our benchmark methodology. Alongside the speed, this maturity is a question of software reliability, which we consider one of our most important advantages.

The major part of the Fastvideo SDK components (debayers and codecs) can offer both high performance and image quality at the same time, leaving behind the NPP alternatives. What’s more, this is also true for embedded solutions on Jetson where computing performance is quite limited. For example, NVIDIA NPP only has a bilinear debayer, so it can be regarded as a low-quality solution, best suited only for software prototype development.

Summing up this section, we need to specify the following technological advantages of the Fastvideo SDK over NPP in terms of image processing modules for camera applications:

To summarize, Fastvideo SDK offers an image processing workflow which is standard for digital cinema applications, and could be very useful for other imaging applications as well.

Why should customers consider Fastvideo SDK instead of NVIDIA NPP?

Fastvideo SDK provides better image quality and processing performance for implementing key algorithms for camera applications. The real-time mode is an essential requirement for any camera application, especially for multi-camera systems.

NPP is a general-purpose set of primitives rather than a complete, tested camera ISP. If customers come to us with any bug in Fastvideo SDK, we fix it within a couple of days, because Fastvideo possesses all the source code and the image processing modules are implemented by the Fastvideo development team. Support is our priority: that's why our customers can rely on our SDK.

We offer custom development to meet specific our customers' requirements. Our development team can build GPU-based image processing modules from scratch according to the customer's request, whereas in contrast NVIDIA provides nothing of the kind.

We are focused on high-performance camera applications and we have years of experience, and our solutions have been heavily tested in many projects. For example, our customer vk.com has been processing more than 400,000 JPG images per second for years without any issue, which means our software is extremely reliable.

Software downloads to evaluate the Fastvideo SDK

You can test your RAW/DNG/MLV images with Fast CinemaDNG Processor software. To create your own camera application, please download the source codes from GitHub to get a ready solution ASAP.

Useful links for projects with the Fastvideo SDK

1. Software from Fastvideo for GPU-based CinemaDNG processing is 40 times faster than Adobe Camera Raw:

http://ir-ltd.net/introducing-the-aeon-motion-scanning-system

2. Fastvideo SDK offers high-performance processing and real-time encoding of camera streams with very high data rates:

https://www.fastcompression.com/blog/gpixel-gmax3265-image-sensor-processing.htm

3. GPU-based solutions from Fastvideo for machine vision cameras:

https://www.fastcompression.com/blog/gpu-software-machine-vision-cameras.htm

4. How to work with scientific cameras with 16-bit frames at high rates in real-time:

https://www.fastcompression.com/blog/hamamatsu-orca-gpu-image-processing.htm

5. How to work with XIMEA machine vision cameras at high performance applications in real-time:

https://www.fastcompression.com/products/fastvcr-ximea-software.htm

Fyodor Serzhenko, Fastvideo

About the author

Fyodor Serzhenko, PhD, is the founder and CEO of Fastvideo. He earned his PhD at the Moscow Institute of Physics and Technology (MIPT) in 1993. Since 2009 he has led the development of Fastvideo’s GPU-accelerated image codecs and ISP modules, including the Fastvideo SDK. Connect on LinkedIn.

Why you can trust these results

Fastvideo has built GPU-accelerated image processing software since 2009. Our codecs comply with the standards they implement — JPEG (ITU-T T.81 / ISO IEC 10918) and JPEG2000 (ITU-T T.800 / ISO IEC 15444) — and our tools are open source on GitHub. Every performance figure we publish is reproducible: see our benchmark methodology, download the Fastvideo SDK benchmark report (PDF), and measure it on your own GPU.

Contact Form

This form collects your name and email. See our Privacy Policy for how we handle your personal data.