Intel® Integrated Performance Primitives (Intel® IPP) Developer Guide and Reference

ID 790148
Date 3/22/2024
Public
Document Table of 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>_<descriptors>

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 modare:

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 Ipp16svalue[3], Ipp16* pDst, int dstStep, IppiSize roiSize);