Developer Reference for Intel® Integrated Performance Primitives
The datatype field indicates data types used by the function, in the following format:
<bit depth><bit interpretation> ,
where
bit depth = <1|8|16|32|64>
and
bit interpretation = <u|s|f>[c]
Here u indicates “unsigned integer”, s indicates “signed integer”, f indicates “floating point”, and c indicates “complex”.
Intel IPP supports the following data types for image and video processing functions:
8 bit, unsigned data
8 bit, signed data
16 bit, unsigned data
16-bit, complex unsigned short data †
16 bit, signed data
16-bit, complex short data
32 bit, unsigned data
32 bit, signed data
32-bit, complex int data
32-bit, single-precision real floating point data
32-bit, single-precision complex floating point data
64-bit, quadword signed data
64-bit, double-precision real floating point data
† - only partial support for intermediate result after transforms (in the so-called “time” domain).
For image processing functions that do not support 1u data type, convert bitonal images to 8u gray scale images using the ippiConvert_1u8u_C1R function.
The formats for complex data are represented in Intel IPP by structures defined as follows:
typedef struct { Ipp16s re; Ipp16s im; } Ipp16sc;
typedef struct { Ipp32s re; Ipp32s im; } Ipp32sc;
typedef struct { Ipp32f re; Ipp32f im; } Ipp32fc;
where re, im denote the real and imaginary parts, respectively.
Complex data formats are used by several arithmetic image processing functions. The 32fc format is also used to store input/output data in some Fourier transform functions.
The 64-bit formats, 64s and 64f, are used for storing data computed by some image statistics functions.
For functions that operate on a single data type, the datatype field contains only one of the values listed above.
If a function operates on source and destination images that have different data types, the respective data type identifiers are listed in the function name in order of source and destination as follows:
<datatype> = <src1Datatype>[src2Datatype][dstDatatype]
For example, the function that converts 8-bit unsigned source image data to 32-bit floating point destination image data has the 8u32f value for the datatype field.
In the lists of function parameters (arguments), the Ipp prefix is written in the data type. For example, the 8-bit unsigned data is denoted as Ipp8u type. These Intel IPP-specific data types are defined in the respective library header files.