Developer Reference

  • 2020
  • 10/21/2020
  • Public Content
Contents

Function Prototypes in Intel IPP

Function names in Intel IPP contain
datatype
and
descriptor
fields after the
name
field (see
Function Naming
). Most of the Intel IPP functions for image processing have a number of flavors that differ in data types associated with the operation, and in some additional parameters.
Each function flavor has its unique prototype used in function definition and for calling the function from the application program. For many flavors of a given function, these prototypes look quite similar.
To avoid listing all the similar prototypes in function description in this document, only different templates for such prototypes followed by the table of applicable data types and descriptors for each function may be given. For simplicity, in such cases the data type and descriptor fields in the function name are denoted as
mod
:
<
mod
> = <
datatype
>_<
datatype
>
For example, the template for the prototype of the image dilation function that performs not-in-place operation, looks like this:
IppStatus ippiDilate_<
mod
>(const Ipp<datatype>*
pSrc
, int
srcStep
, Ipp<datatype>*
pDst
, int
dstStep
, IppiSize
roiSize
);
where the supported values for
mod
are:
8u_C1R
8u_C3R
8u_AC4R
This notation means that the
ippiDilate
function has three flavors for a not-in-place operation, which process 8-bit unsigned data (of
Ipp8u
type) and differ in the number of channels in processed images. These flavors have the following prototypes:
IppStatus ippiDilate_8u_C1R(const Ipp8u* pSrc, int srcStep, Ipp8u* pDst, int dstStep, IppiSize roiSize);
IppStatus ippiDilate_8u_C3R(const Ipp8u* pSrc, int srcStep, Ipp8u* pDst, int dstStep, IppiSize roiSize);
IppStatus ippiDilate_8u_AC4R(const Ipp8u* pSrc, int srcStep, Ipp8u* pDst, int dstStep, IppiSize roiSize);
Thus, to obtain the full name and parameters list for the specific function flavor, not listed directly, do the following:
  1. Choose the function operation mode (denoted in this document as
    Case 1
    ,
    2
    and so on) and look in the table for the supported data types and descriptors.
  2. Set the
    mod
    field in the function name as the concatenation of the chosen data type and descriptor, delimited by the underscore.
  3. Use the respective template, substituting all the
    datatype
    fields in the parameters list with the chosen data type. Note that
    Ipp
    prefix is written before the
    datatype
    in the parameters list (see
    Data Types
    for details).
Example
To get the prototype for the
ippiSet
function flavor that sets each channel of a 3-channel destination image to 16-bit signed values, choose
Case 2: Setting each color channel to a specified value
and use
datatype
=
16s
,
descriptors
=
C3R
.
After substituting the
mod
field with
16s_C3R
, obtain the required prototype as
ippiSet_16s_C3R(const Ipp16s
value
[3], Ipp16*
pDst
, int
dstStep
, IppiSize
roiSize
);

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