NVIDIA Performance Primitives (NPP)
Version 9.2
|
Signal data is passed to and from NPPS primitives via a pointer to the signal's data type.
The general idea behind this fairly low-level way of passing signal data is ease-of-adoption into existing software projects:
There are three general cases of image-data passing throughout NPP detailed in the following sections.
Those are signals consumed by the algorithm.
The source signal data is generally passed via a pointer named
The source signal pointer is generally defined constant, enforcing that the primitive does not change any image data pointed to by that pointer. E.g.
In case the primitive consumes multiple signals as inputs the source pointers are numbered like this:
The destination signal data is generally passed via a pointer named
In case the primitive consumes multiple signals as inputs the source pointers are numbered like this:
In the case of in-place processing, source and destination are served by the same pointer and thus pointers to in-place signal data are called:
NPP requires signal sample data to be naturally aligned, i.e. any pointer
to a sample in a signal needs to fulfill:
All NPPI primitives operating on signal data validate the signal-data pointer for proper alignment and test that the point is not null.
Failed validation results in one of the following error codes being returned and the primitive not being executed:
The vast majority of NPPS functions take a
parameter that tells the primitive how many of the signal's samples starting from the given data pointer are to be processed.
All NPPS primitives taking a length parameter validate this input.
Failed validation results in the following error code being returned and the primitive not being executed: