Developer Reference

  • 2020
  • 07/15/2020
  • Public Content
Contents

Data Types

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 data types of the source and destination for signal processing functions listed in the table below.
In the lists of function parameters, the
Ipp
prefix is added to the data type. For example, 8-bit signed data is denoted as
Ipp8s
type. These Intel IPP-specific data types are defined in the respective library header files.
Data Types Supported by Intel IPP for Signal Processing
Type
Usual C Type
Intel IPP Type
8u
unsigned char
Ipp8u
8s
signed char
Ipp8s
16u
unsigned short
Ipp16u
16s
signed short
Ipp16s
16sc
complex short
Ipp16sc
32u
unsigned int
Ipp32u
32s
signed int
Ipp32s
32f
float
Ipp32f
32fc
complex float
Ipp32fc
64s
__int64
(Windows*) or
long long
(Linux*)
Ipp64s
64f
double
Ipp64f
64fc
complex double
Ipp64fc
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 signals 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
ippsDotProd_16s16sc_Sfs
computes the dot product of 16-bit short and 16-bit complex short source vectors and stores the result in a 16-bit complex short destination vector. The
dstDatatype
modifier is not present in the name because the second operand and the result are of the same type. The result is scaled and saturated.
There are several data types, namely
24u
,
24s
and
16f
that are not supported by Intel IPP, but can be readily converted to the supported data types for further processing by the library functions.
For the unsigned
24u
data, each vector element consists of three consecutive bytes represented as
Ipp8u
data types. It has a little-endian byte order when a lower order byte is at the lower address. These data may be converted to and from
32u
or
32f
data types by using the appropriate flavors of the Intel IPP function
ippsConvert
.
For the signed
24s
data, each vector element consists of three consecutive bytes represented as
Ipp8s
data types. It has a little-endian byte order when a lower order byte is at the lower address. The sign is represented by the most significant bit of the highest order byte. These data may be converted to and from
32s
or
32f
data types by using the appropriate flavors of the Intel IPP function
ippsConvert
.
For the
16f
format, 16-bit floating point data (
half type
) can represent positive and negative numbers, whose magnitude is between roughly
6.1e
-5
and
6.5e
4
, with a relative error of
9.8e
-4
; numbers smaller than
6.1e
-5
can be represented with an absolute error of
6.0e
-8
. All integers from
-2048
to
+2048
can be represented exactly.
The figure below illustrates the bit-layout for a half number:
s
is the sign-bit,
e
is the exponent, and
m
is the significand.
These data may be converted to and from
16s
and
32f
data types by using the appropriate flavors of the Intel IPP function
ippsConvert
.

Product and Performance Information

1

Intel's compilers may or may not optimize to the same degree for non-Intel microprocessors for optimizations that are not unique to Intel microprocessors. These optimizations include SSE2, SSE3, and SSSE3 instruction sets and other optimizations. Intel does not guarantee the availability, functionality, or effectiveness of any optimization on microprocessors not manufactured by Intel. Microprocessor-dependent optimizations in this product are intended for use with Intel microprocessors. Certain optimizations not specific to Intel microarchitecture are reserved for Intel microprocessors. Please refer to the applicable product User and Reference Guides for more information regarding the specific instruction sets covered by this notice.

Notice revision #20110804