NVIDIA 2D Image And Signal Performance Primitives (NPP)  Version 10.2.*.*
 All Data Structures Functions Variables Typedefs Enumerations Enumerator Groups Pages
nppdefs.h
1  /* Copyright 2009-2019 NVIDIA Corporation. All rights reserved.
2  *
3  * NOTICE TO LICENSEE:
4  *
5  * The source code and/or documentation ("Licensed Deliverables") are
6  * subject to NVIDIA intellectual property rights under U.S. and
7  * international Copyright laws.
8  *
9  * The Licensed Deliverables contained herein are PROPRIETARY and
10  * CONFIDENTIAL to NVIDIA and are being provided under the terms and
11  * conditions of a form of NVIDIA software license agreement by and
12  * between NVIDIA and Licensee ("License Agreement") or electronically
13  * accepted by Licensee. Notwithstanding any terms or conditions to
14  * the contrary in the License Agreement, reproduction or disclosure
15  * of the Licensed Deliverables to any third party without the express
16  * written consent of NVIDIA is prohibited.
17  *
18  * NOTWITHSTANDING ANY TERMS OR CONDITIONS TO THE CONTRARY IN THE
19  * LICENSE AGREEMENT, NVIDIA MAKES NO REPRESENTATION ABOUT THE
20  * SUITABILITY OF THESE LICENSED DELIVERABLES FOR ANY PURPOSE. THEY ARE
21  * PROVIDED "AS IS" WITHOUT EXPRESS OR IMPLIED WARRANTY OF ANY KIND.
22  * NVIDIA DISCLAIMS ALL WARRANTIES WITH REGARD TO THESE LICENSED
23  * DELIVERABLES, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY,
24  * NONINFRINGEMENT, AND FITNESS FOR A PARTICULAR PURPOSE.
25  * NOTWITHSTANDING ANY TERMS OR CONDITIONS TO THE CONTRARY IN THE
26  * LICENSE AGREEMENT, IN NO EVENT SHALL NVIDIA BE LIABLE FOR ANY
27  * SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL DAMAGES, OR ANY
28  * DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS,
29  * WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS
30  * ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE
31  * OF THESE LICENSED DELIVERABLES.
32  *
33  * U.S. Government End Users. These Licensed Deliverables are a
34  * "commercial item" as that term is defined at 48 C.F.R. 2.101 (OCT
35  * 1995), consisting of "commercial computer software" and "commercial
36  * computer software documentation" as such terms are used in 48
37  * C.F.R. 12.212 (SEPT 1995) and are provided to the U.S. Government
38  * only as a commercial end item. Consistent with 48 C.F.R.12.212 and
39  * 48 C.F.R. 227.7202-1 through 227.7202-4 (JUNE 1995), all
40  * U.S. Government End Users acquire the Licensed Deliverables with
41  * only those rights set forth herein.
42  *
43  * Any use of the Licensed Deliverables in individual and commercial
44  * software must include, in the user documentation and internal
45  * comments to the code, the above Disclaimer and U.S. Government End
46  * Users Notice.
47  */
48 #ifndef NV_NPPIDEFS_H
49 #define NV_NPPIDEFS_H
50 
51 #include <stdlib.h>
52 #include <cuda_runtime.h>
53 
59 #ifdef __cplusplus
60 extern "C" {
61 #endif
62 
63 // Workaround for cuda_fp16.h C incompatibility
64 typedef
65 struct
66 {
67  short fp16;
68 }
69 Npp16f;
70 
71 typedef
72 struct
73 {
74  short fp16_0;
75  short fp16_1;
76 }
77 Npp16f_2;
78 
79 #define NPP_HALF_TO_NPP16F(pHalf) (* reinterpret_cast<Npp16f *>((void *)(pHalf)))
80 
81 // If this is a 32-bit Windows compile, don't align to 16-byte at all
82  // and use a "union-trick" to create 8-byte alignment.
83 #if defined(_WIN32) && !defined(_WIN64)
84 
85  // On 32-bit Windows platforms, do not force 8-byte alignment.
86  // This is a consequence of a limitation of that platform.
87  #define NPP_ALIGN_8
88  // On 32-bit Windows platforms, do not force 16-byte alignment.
89  // This is a consequence of a limitation of that platform.
90  #define NPP_ALIGN_16
91 
92 #else /* _WIN32 && !_WIN64 */
93 
94  #define NPP_ALIGN_8 __align__(8)
95  #define NPP_ALIGN_16 __align__(16)
96 
97 #endif /* !__CUDACC__ && _WIN32 && !_WIN64 */
98 
99 
108 typedef enum
109 {
120  NPPI_SMOOTH_EDGE = (int)0x8000000
122 
126 typedef enum
127 {
133 
137 typedef enum
138 {
141  NPP_MASK_SIZE_3_X_1 = 100, // leaving space for more 1 X N type enum values
143  NPP_MASK_SIZE_3_X_3 = 200, // leaving space for more N X 1 type enum values
150 } NppiMaskSize;
151 
156 typedef enum
157 {
161 
170 typedef enum
171 {
172  /* negative return-codes indicate errors */
174 
188 
238  NPP_ERROR = -2,
240 
241  /* success */
245  /* positive return-codes indicate warnings */
255 } NppStatus;
256 
257 typedef struct
258 {
259  int major;
260  int minor;
261  int build;
263 
270 typedef unsigned char Npp8u;
271 typedef signed char Npp8s;
272 typedef unsigned short Npp16u;
273 typedef short Npp16s;
274 typedef unsigned int Npp32u;
275 typedef int Npp32s;
276 typedef unsigned long long Npp64u;
277 typedef long long Npp64s;
278 typedef float Npp32f;
279 typedef double Npp64f;
286 typedef struct __align__(2)
287 {
288  Npp8u re;
289  Npp8u im;
291 
296 typedef struct __align__(4)
297 {
298  Npp16u re;
299  Npp16u im;
301 
306 typedef struct __align__(4)
307 {
308  Npp16s re;
309  Npp16s im;
311 
316 typedef struct NPP_ALIGN_8
317 {
318  Npp32u re;
319  Npp32u im;
320 } Npp32uc;
321 
326 typedef struct NPP_ALIGN_8
327 {
328  Npp32s re;
329  Npp32s im;
330 } Npp32sc;
331 
336 typedef struct NPP_ALIGN_8
337 {
338  Npp32f re;
339  Npp32f im;
340 } Npp32fc;
341 
346 typedef struct NPP_ALIGN_16
347 {
348  Npp64s re;
349  Npp64s im;
350 } Npp64sc;
351 
356 typedef struct NPP_ALIGN_16
357 {
358  Npp64f re;
359  Npp64f im;
360 } Npp64fc;
361 
364 #define NPP_MIN_8U ( 0 )
365 #define NPP_MAX_8U ( 255 )
366 #define NPP_MIN_16U ( 0 )
367 #define NPP_MAX_16U ( 65535 )
368 #define NPP_MIN_32U ( 0 )
369 #define NPP_MAX_32U ( 4294967295U )
370 #define NPP_MIN_64U ( 0 )
371 #define NPP_MAX_64U ( 18446744073709551615ULL )
373 #define NPP_MIN_8S (-127 - 1 )
374 #define NPP_MAX_8S ( 127 )
375 #define NPP_MIN_16S (-32767 - 1 )
376 #define NPP_MAX_16S ( 32767 )
377 #define NPP_MIN_32S (-2147483647 - 1 )
378 #define NPP_MAX_32S ( 2147483647 )
379 #define NPP_MAX_64S ( 9223372036854775807LL )
380 #define NPP_MIN_64S (-9223372036854775807LL - 1)
382 #define NPP_MINABS_32F ( 1.175494351e-38f )
383 #define NPP_MAXABS_32F ( 3.402823466e+38f )
384 #define NPP_MINABS_64F ( 2.2250738585072014e-308 )
385 #define NPP_MAXABS_64F ( 1.7976931348623158e+308 )
391 typedef struct
392 {
393  int x;
394  int y;
395 } NppiPoint;
396 
400 typedef struct {
401  Npp32f rho;
402  Npp32f theta;
403 } NppPointPolar;
404 
410 typedef struct
411 {
412  int width;
413  int height;
414 } NppiSize;
415 
423 typedef struct
424 {
425  int x;
426  int y;
427  int width;
428  int height;
429 } NppiRect;
430 
431 typedef enum
432 {
436 } NppiAxis;
437 
438 typedef enum
439 {
445 } NppCmpOp;
446 
460 typedef enum
461 {
474 
485 
495 
496  /*
497  * Other rounding modes supported by IEEE-754 (2008) floating-point standard:
498  *
499  * - NPP_ROUND_TOWARD_INFINITY // ceiling
500  * - NPP_ROUND_TOWARD_NEGATIVE_INFINITY // floor
501  *
502  */
503 } NppRoundMode;
504 
505 typedef enum
506 {
514 
515 
516 typedef enum {
521 
522 /*
523  * Alpha composition controls.
524  */
525 
526 typedef enum {
540 } NppiAlphaOp;
541 
542 
547 typedef struct
548 {
549  int cellSize;
553 } NppiHOGConfig;
554 
555 #define NPP_HOG_MAX_CELL_SIZE (16)
556 #define NPP_HOG_MAX_BLOCK_SIZE (64)
557 #define NPP_HOG_MAX_BINS_PER_CELL (16)
558 #define NPP_HOG_MAX_CELLS_PER_DESCRIPTOR (256)
559 #define NPP_HOG_MAX_OVERLAPPING_BLOCKS_PER_DESCRIPTOR (256)
560 #define NPP_HOG_MAX_DESCRIPTOR_LOCATIONS_PER_CALL (128)
562 typedef struct
563 {
565  Npp32s * classifiers;
568  Npp32s * counterDevice;
570 
571 typedef struct
572 {
574  Npp32s * haarBuffer;
577 
578 typedef enum {
582 } NppsZCType;
583 
584 typedef enum {
588 
589 typedef enum {
593 } NppiNorm;
594 
600 typedef struct
601 {
602  void * pData; // device memory pointer to the image
603  int nStep; // step size
604  NppiSize oSize; // width and height of the image
606 
612 typedef struct
613 {
614  cudaStream_t hStream;
615  int nCudaDeviceId; /* From cudaGetDevice() */
616  int nMultiProcessorCount; /* From cudaGetDeviceProperties() */
617  int nMaxThreadsPerMultiProcessor; /* From cudaGetDeviceProperties() */
618  int nMaxThreadsPerBlock; /* From cudaGetDeviceProperties() */
619  size_t nSharedMemPerBlock; /* From cudaGetDeviceProperties */
620  int nCudaDevAttrComputeCapabilityMajor; /* From cudaGetDeviceAttribute() */
621  int nCudaDevAttrComputeCapabilityMinor; /* From cudaGetDeviceAttribute() */
625 
626 #ifdef __cplusplus
627 } /* extern "C" */
628 #endif
629 
632 #endif /* NV_NPPIDEFS_H */
Definition: nppdefs.h:442
Definition: nppdefs.h:535
Definition: nppdefs.h:222
Definition: nppdefs.h:228
Definition: nppdefs.h:180
Speed reduction due to uncoalesced memory accesses warning.
Definition: nppdefs.h:253
Channel of interest is not 1, 2, or 3.
Definition: nppdefs.h:208
NppiMaskSize
Fixed filter-kernel sizes.
Definition: nppdefs.h:137
Npp32f re
Real part.
Definition: nppdefs.h:338
int nMaxThreadsPerMultiProcessor
Definition: nppdefs.h:617
Definition: nppdefs.h:71
Image pixels are constant for quality index.
Definition: nppdefs.h:191
Definition: nppdefs.h:512
Definition: nppdefs.h:149
Npp32u im
Imaginary part.
Definition: nppdefs.h:319
struct NPP_ALIGN_8 Npp32uc
Complex Number This struct represents an unsigned int complex number.
int height
Rectangle height.
Definition: nppdefs.h:413
Round to the nearest even integer.
Definition: nppdefs.h:472
Definition: nppdefs.h:146
General image descriptor.
Definition: nppdefs.h:600
int haarBufferSize
size of the buffer
Definition: nppdefs.h:573
Definition: nppdefs.h:434
unsigned char Npp8u
8-bit unsigned chars
Definition: nppdefs.h:270
Definition: nppdefs.h:140
Definition: nppdefs.h:181
Definition: nppdefs.h:235
Definition: nppdefs.h:230
Definition: nppdefs.h:187
struct __align__(2)
Complex Number This struct represents an unsigned char complex number.
Definition: nppdefs.h:286
int nCudaDeviceId
Definition: nppdefs.h:615
Complex Number This struct represents an unsigned int complex number.
Definition: nppdefs.h:316
Definition: nppdefs.h:511
int y
y-coordinate of upper left corner (lowest memory address).
Definition: nppdefs.h:426
int nStep
Definition: nppdefs.h:603
sum
Definition: nppdefs.h:591
Npp64f re
Real part.
Definition: nppdefs.h:358
Definition: nppdefs.h:185
Definition: nppdefs.h:144
Definition: nppdefs.h:145
Definition: nppdefs.h:518
int y
y-coordinate.
Definition: nppdefs.h:394
int nCudaDevAttrComputeCapabilityMajor
Definition: nppdefs.h:620
NppiAxis
Definition: nppdefs.h:431
Definition: nppdefs.h:239
Definition: nppdefs.h:179
Definition: nppdefs.h:184
Definition: nppdefs.h:219
cudaStream_t hStream
Definition: nppdefs.h:614
The given ROI has no interestion with either the source or destination ROI.
Definition: nppdefs.h:249
NppiBayerGridPosition
Bayer Grid Position Registration.
Definition: nppdefs.h:126
Npp64s re
Real part.
Definition: nppdefs.h:348
NppiSize detectionWindowSize
detection window size (pixels).
Definition: nppdefs.h:552
Definition: nppdefs.h:186
sign change XOR
Definition: nppdefs.h:580
AC Table.
Definition: nppdefs.h:586
NppStatus
Error Status Codes.
Definition: nppdefs.h:170
Definition: nppdefs.h:227
Bad or unsupported number of channels.
Definition: nppdefs.h:207
Npp8uc
Definition: nppdefs.h:290
Image size isn&#39;t multiple of two.
Definition: nppdefs.h:251
Definition: nppdefs.h:435
Definition: nppdefs.h:537
Definition: nppdefs.h:571
Npp32f theta
Definition: nppdefs.h:402
Definition: nppdefs.h:110
Definition: nppdefs.h:538
Npp32u re
Real part.
Definition: nppdefs.h:318
int nCudaDevAttrComputeCapabilityMinor
Definition: nppdefs.h:621
Wrong order of the destination channels.
Definition: nppdefs.h:201
Complex Number This struct represents a long long complex number.
Definition: nppdefs.h:346
Npp32s * haarBuffer
buffer
Definition: nppdefs.h:574
sign change count_0
Definition: nppdefs.h:581
Definition: nppdefs.h:433
int nMaxThreadsPerBlock
Definition: nppdefs.h:618
Npp64s im
Imaginary part.
Definition: nppdefs.h:349
Npp32s re
Real part.
Definition: nppdefs.h:328
Definition: nppdefs.h:233
Step value is not pixel multiple.
Definition: nppdefs.h:196
Linear interpolation.
Definition: nppdefs.h:112
2D Size This struct typically represents the size of a a rectangular region in two space...
Definition: nppdefs.h:410
NppCmpOp
Definition: nppdefs.h:438
Definition: nppdefs.h:517
Definition: nppdefs.h:139
size_t nSharedMemPerBlock
Definition: nppdefs.h:619
Npp64f im
Imaginary part.
Definition: nppdefs.h:359
Definition: nppdefs.h:221
Definition: nppdefs.h:507
Definition: nppdefs.h:536
Round towards zero (truncation).
Definition: nppdefs.h:493
square root of sum of squares
Definition: nppdefs.h:592
Size of the rectangle region is less than or equal to 1.
Definition: nppdefs.h:204
Definition: nppdefs.h:528
Processed data is corrupted.
Definition: nppdefs.h:200
int x
x-coordinate.
Definition: nppdefs.h:393
Definition: nppdefs.h:440
Definition: nppdefs.h:236
Definition: nppdefs.h:143
struct NPP_ALIGN_16 Npp64sc
Complex Number This struct represents a long long complex number.
Number of levels for LUT is less than 2.
Definition: nppdefs.h:198
int width
Rectangle width.
Definition: nppdefs.h:412
int build
Build number.
Definition: nppdefs.h:261
int x
x-coordinate of upper left corner (lowest memory address).
Definition: nppdefs.h:425
Definition: nppdefs.h:508
Definition: nppdefs.h:142
Definition: nppdefs.h:510
Definition: nppdefs.h:234
struct NPP_ALIGN_16 Npp64fc
Complex Number This struct represents a double floating-point complex number.
struct NPP_ALIGN_8 Npp32sc
Complex Number This struct represents a signed int complex number.
int nReserved1
Definition: nppdefs.h:623
long long Npp64s
64-bit signed integers
Definition: nppdefs.h:277
Definition: nppdefs.h:531
int cellSize
square cell size (pixels).
Definition: nppdefs.h:549
Definition: nppdefs.h:218
Definition: nppdefs.h:220
int major
Major version number.
Definition: nppdefs.h:259
Definition: nppdefs.h:534
int Npp32s
32-bit signed integers
Definition: nppdefs.h:275
sign change
Definition: nppdefs.h:579
Definition: nppdefs.h:539
Definition: nppdefs.h:519
Lower bound is larger than upper bound.
Definition: nppdefs.h:215
int minor
Minor version number.
Definition: nppdefs.h:260
NppiInterpolationMode
Filtering methods.
Definition: nppdefs.h:108
Divisor is zero however does not terminate the execution.
Definition: nppdefs.h:247
Round according to financial rule.
Definition: nppdefs.h:483
The given quadrangle has no intersection with either the source or destination ROI.
Definition: nppdefs.h:250
short fp16_1
Definition: nppdefs.h:75
Unallowable values of the transformation coefficients.
Definition: nppdefs.h:205
Alias name for NPP_RND_ZERO.
Definition: nppdefs.h:494
Definition: nppdefs.h:232
2D Rectangle This struct contains position and size information of a rectangle in two space...
Definition: nppdefs.h:423
Definition: nppdefs.h:64
DC Table.
Definition: nppdefs.h:585
void * pData
Definition: nppdefs.h:602
NppiSize classifierSize
Definition: nppdefs.h:567
Error free operation.
Definition: nppdefs.h:242
Npp16uc
Definition: nppdefs.h:300
Super sampling.
Definition: nppdefs.h:117
Stride is less than the row length.
Definition: nppdefs.h:212
int width
Rectangle width.
Definition: nppdefs.h:427
Definition: nppdefs.h:231
Npp16sc
Definition: nppdefs.h:310
short fp16
Definition: nppdefs.h:67
Number overflows the upper or lower limit of the data type.
Definition: nppdefs.h:195
unsigned short Npp16u
16-bit unsigned integers
Definition: nppdefs.h:272
NppiNorm
Definition: nppdefs.h:589
Alias name for NPP_RND_NEAR.
Definition: nppdefs.h:473
NPP stream context structure must be filled in by application.
Definition: nppdefs.h:612
NppRoundMode
Rounding Modes.
Definition: nppdefs.h:460
size_t classifierStep
Definition: nppdefs.h:566
Definition: nppdefs.h:529
Npp32s * counterDevice
Definition: nppdefs.h:568
int histogramBlockSize
square histogram block size (pixels).
Definition: nppdefs.h:550
Definition: nppdefs.h:176
Npp32s * classifiers
packed classifier data 40 bytes each
Definition: nppdefs.h:565
Definition: nppdefs.h:530
Definition: nppdefs.h:225
Definition: nppdefs.h:527
Definition: nppdefs.h:130
NppiHuffmanTableType
Definition: nppdefs.h:584
NppiSize oSize
Definition: nppdefs.h:604
short Npp16s
16-bit signed integers
Definition: nppdefs.h:273
Definition: nppdefs.h:129
unsigned int Npp32u
32-bit unsigned integers
Definition: nppdefs.h:274
Anchor point is outside mask.
Definition: nppdefs.h:214
Definition: nppdefs.h:223
signed char Npp8s
8-bit signed chars
Definition: nppdefs.h:271
Definition: nppdefs.h:224
unsigned long long Npp64u
64-bit unsigned integers
Definition: nppdefs.h:276
Nearest neighbor filtering.
Definition: nppdefs.h:111
Definition: nppdefs.h:148
Smooth edge filtering.
Definition: nppdefs.h:120
Alias name for NPP_RND_FINANCIAL.
Definition: nppdefs.h:484
Illegal channel index.
Definition: nppdefs.h:211
Default registration position.
Definition: nppdefs.h:128
double Npp64f
64-bit floating-point numbers
Definition: nppdefs.h:279
ZeroCrossing mode not supported.
Definition: nppdefs.h:178
Unsupported round mode.
Definition: nppdefs.h:189
Indicates that no operation was performed.
Definition: nppdefs.h:246
The NppiHOGConfig structure defines the configuration parameters for the HOG descriptor: ...
Definition: nppdefs.h:547
int numClassifiers
number of classifiers
Definition: nppdefs.h:564
2D Polar Point
Definition: nppdefs.h:400
int nHistogramBins
required number of histogram bins.
Definition: nppdefs.h:551
Two-parameter cubic filter (B=1/2, C=3/10)
Definition: nppdefs.h:116
Indicates that the quadrangle passed to one of affine warping functions doesn&#39;t have necessary proper...
Definition: nppdefs.h:248
NppsZCType
Definition: nppdefs.h:578
int nMultiProcessorCount
Definition: nppdefs.h:616
Step is less or equal zero.
Definition: nppdefs.h:226
NppiBorderType
Definition: nppdefs.h:505
One of the output image dimensions is less than 1 pixel.
Definition: nppdefs.h:193
float Npp32f
32-bit (IEEE) floating-point numbers
Definition: nppdefs.h:278
maximum
Definition: nppdefs.h:590
Npp32f rho
Definition: nppdefs.h:401
Definition: nppdefs.h:441
Definition: nppdefs.h:141
Definition: nppdefs.h:229
int nReserved0
Definition: nppdefs.h:622
Definition: nppdefs.h:443
Definition: nppdefs.h:532
Definition: nppdefs.h:175
Definition: nppdefs.h:182
NppiAlphaOp
Definition: nppdefs.h:526
Definition: nppdefs.h:509
Divisor is equal to zero.
Definition: nppdefs.h:209
All values of the mask are zero.
Definition: nppdefs.h:202
Definition: nppdefs.h:562
Definition: nppdefs.h:173
NppHintAlgorithm
Definition: nppdefs.h:516
Definition: nppdefs.h:444
Definition: nppdefs.h:177
Generic Lanczos filtering with order 3.
Definition: nppdefs.h:119
Definition: nppdefs.h:131
Definition: nppdefs.h:217
Definition: nppdefs.h:159
Cubic interpolation.
Definition: nppdefs.h:113
2D Point
Definition: nppdefs.h:391
Two-parameter cubic filter (B=0, C=1/2)
Definition: nppdefs.h:115
Definition: nppdefs.h:183
struct NPP_ALIGN_8 Npp32fc
Complex Number This struct represents a single floating-point complex number.
Definition: nppdefs.h:533
Definition: nppdefs.h:237
Lanczos filtering.
Definition: nppdefs.h:118
short fp16_0
Definition: nppdefs.h:74
The quadrangle is nonconvex or degenerates into triangle, line or point.
Definition: nppdefs.h:203
Successful operation (same as NPP_NO_ERROR)
Definition: nppdefs.h:243
Npp32f im
Imaginary part.
Definition: nppdefs.h:339
Definition: nppdefs.h:158
Number of levels for histogram is less than 2.
Definition: nppdefs.h:197
Definition: nppdefs.h:238
Two-parameter cubic filter (B=1, C=0)
Definition: nppdefs.h:114
Definition: nppdefs.h:257
Npp32s im
Imaginary part.
Definition: nppdefs.h:329
Definition: nppdefs.h:147
NppiDifferentialKernel
Differential Filter types.
Definition: nppdefs.h:156
int height
Rectangle height.
Definition: nppdefs.h:428

Copyright © 2009-2019 NVIDIA Corporation