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

ID 790148
Date 3/22/2024
Public
Document Table of Contents

MulC

Multiplies pixel values of an image by a constant.

Syntax

Case 1: Not-in-place operation on one-channel integer or complex data

IppStatus ippiMulC_<mod>(const Ipp<datatype>* pSrc, int srcStep, Ipp<datatype> value, Ipp<datatype>* pDst, int dstStep, IppiSize roiSize, int scaleFactor);

Supported values for mod:

8u_C1RSfs

16u_C1RSfs

16s_C1RSfs

Case 2: Not-in-place operation on multi-channel integer or complex data

IppStatus ippiMulC_<mod>(const Ipp<datatype>* pSrc, int srcStep, const Ipp<datatype> value[3], Ipp<datatype>* pDst, int dstStep, IppiSize roiSize, int scaleFactor);

Supported values for mod:

8u_C3RSfs

16u_C3RSfs

16s_C3RSfs

IppStatus ippiMulC_<mod>(const Ipp<datatype>* pSrc, int srcStep, const Ipp<datatype> value[4], Ipp<datatype>* pDst, int dstStep, IppiSize roiSize, int scaleFactor);

Supported values for mod:

8u_C4RSfs

16u_C4RSfs

16s_C4RSfs

IppStatus ippiMulC_<mod>(const Ipp<datatype>* pSrc, int srcStep, const Ipp<datatype> value[3], Ipp<datatype>* pDst, int dstStep, IppiSize roiSize, int scaleFactor);

Supported values for mod:

8u_AC4RSfs

16u_AC4RSfs

16s_AC4RSfs

Case 3: Not-in-place operation on one-channel floating-point or complex data

IppStatus ippiMulC_32f_C1R(const Ipp<datatype>* pSrc, int srcStep, Ipp<datatype> value, Ipp<datatype>* pDst, int dstStep, IppiSize roiSize);

Case 4: Not-in-place operation on multi-channel floating-point or complex data

IppStatus ippiMulC_32f_C3R(const Ipp<datatype>* pSrc, int srcStep, const Ipp<datatype> value[3], Ipp<datatype>* pDst, int dstStep, IppiSize roiSize);

IppStatus ippiMulC_32f_C4R(const Ipp32f* pSrc, int srcStep, const Ipp32f value[4], Ipp32f* pDst, int dstStep, IppiSize roiSize);

IppStatus ippiMulC_<mod>(const Ipp<datatype>* pSrc, int srcStep, const Ipp<datatype> value[3], Ipp<datatype>* pDst, int dstStep, IppiSize roiSize);

Supported values for mod:

32f_AC4R

IppStatus ippiMulC_32f_C4R(const Ipp32f* pSrc, int srcStep, const Ipp32f value[4], Ipp32f* pDst, int dstStep, IppiSize roiSize);

Case 5: In-place operation on one-channel integer or complex data

IppStatus ippiMulC_<mod>(Ipp<datatype> value, Ipp<datatype>* pSrcDst, int srcDstStep, IppiSize roiSize, int scaleFactor);

Supported values for mod:

8u_C1IRSfs

16u_C1IRSfs

16s_C1IRSfs

Case 6: In-place operation on multi-channel integer or complex data

IppStatus ippiMulC_<mod>(const Ipp<datatype> value[3], Ipp<datatype>* pSrcDst, int srcDstStep, IppiSize roiSize, int scaleFactor);

Supported values for mod:

8u_C3IRSfs

16u_C3IRSfs

16s_C3IRSfs

8u_AC4IRSfs

16u_AC4IRSfs

16s_AC4IRSfs

IppStatus ippiMulC_<mod>(const Ipp<datatype> value[4], Ipp<datatype>* pSrcDst, int srcDstStep, IppiSize roiSize, int scaleFactor);

Supported values for mod:

8u_C4IRSfs

16u_C4IRSfs

16s_C4IRSfs

Case 7: In-place operation on one-channel floating-point or complex data

IppStatus ippiMulC_32f_C1IR(Ipp32f value, Ipp32f* pSrcDst, int srcDstStep, IppiSize roiSize);

Case 8: In-place operation on multi-channel floating-point or complex data

IppStatus ippiMulC_<mod>(const Ipp<datatype> value[3], Ipp<datatype>* pSrcDst, int srcDstStep, IppiSize roiSize);

Supported values for mod:

32f_C3IR

32f_AC4IR

IppStatus ippiMulC_32f_C4IR(const Ipp32f value[4], Ipp32f* pSrcDst, int srcDstStep, IppiSize roiSize);

Case 9: Not-in-place operation on one-channel integer data with platform-aware functions

IppStatus ippiMulC_<mod>(const Ipp<datatype>* pSrc, IppSizeL srcStep, Ipp<datatype> value, Ipp<datatype>* pDst, IppSizeL dstStep, IppiSizeL roiSize, int scaleFactor);

Supported values for mod:

8u_C1RSfs_L

16u_C1RSfs_L

16s_C1RSfs_L

Case 10: Not-in-place operation on multi-channel integer data with platform-aware functions

IppStatus ippiMulC_<mod>(const Ipp<datatype>* pSrc, IppSizeL srcStep, const Ipp<datatype> value[3], Ipp<datatype>* pDst, IppSizeL dstStep, IppiSizeL roiSize, int scaleFactor);

Supported values for mod:

8u_C3RSfs_L

16u_C3RSfs_L

16s_C3RSfs_L

8u_AC4RSfs_L

16u_AC4RSfs_L

16s_AC4RSfs_L

IppStatus ippiMulC_<mod>(const Ipp<datatype>* pSrc, IppSizeL srcStep, const Ipp<datatype> value[4], Ipp<datatype>* pDst, IppSizeL dstStep, IppiSizeL roiSize, int scaleFactor);

Supported values for mod:

8u_C4RSfs_L

16u_C4RSfs_L

16s_C4RSfs_L

Case 11: Not-in-place operation on one-channel floating point data with platform-aware functions

IppStatus ippiMulC_32f_C1R_L(const Ipp32f* pSrc, IppSizeL srcStep, Ipp32f value, Ipp32f* pDst, IppSizeL dstStep, IppiSizeL roiSize);

Case 12: Not-in-place operation on multi-channel floating point data with platform-aware functions

IppStatus ippiMulC_<mod>(const Ipp32f* pSrc, IppSizeL srcStep, const Ipp32f value[3], Ipp32f* pDst, IppSizeL dstStep, IppiSizeL roiSize);

Supported values for mod:

32f_C3R_L

32f_AC4R_L

IppStatus ippiMulC_32f_C4R_L(const Ipp32f* pSrc, IppSizeL srcStep, const Ipp32f value[4], Ipp32f* pDst, IppSizeL dstStep, IppiSizeL roiSize);

Case 13: In-place operation on one-channel integer data with platform-aware functions

IppStatus ippiMulC_<mod>(Ipp<datatype> value, Ipp<datatype>* pSrcDst, IppSizeL srcDstStep, IppiSizeL roiSize, int scaleFactor);

Supported values for mod:

8u_C1IRSfs_L

16u_C1IRSfs_L

16s_C1IRSfs_L

Case 14: In-place operation on multi-channel integer data with platform-aware functions

IppStatus ippiMulC_<mod>(const Ipp<datatype> value[3], Ipp<datatype>* pSrcDst, IppSizeL srcDstStep, IppiSizeL roiSize, int scaleFactor);

Supported values for mod:

8u_C3IRSfs_L

16u_C3IRSfs_L

16s_C3IRSfs_L

8u_AC4IRSfs_L

16u_AC4IRSfs_L

16s_AC4IRSfs_L

IppStatus ippiMulC_<mod>(const Ipp<datatype> value[4], Ipp<datatype>* pSrcDst, IppSizeL srcDstStep, IppiSizeL roiSize, int scaleFactor);

Supported values for mod:

8u_C4IRSfs_L

16u_C4IRSfs_L

16s_C4IRSfs_L

Case 15: In-place operation on one-channel floating point data with platform-aware functions

IppStatus ippiMulC_32f_C1IR_L(Ipp32f value, Ipp32f* pSrcDst, IppSizeL srcDstStep, IppiSizeL roiSize);

Case 16: In-place operation on multi-channel integer data with platform-aware functions

IppStatus ippiMulC_<mod>(const Ipp32f value[3], Ipp32f* pSrcDst, IppSizeL srcDstStep, IppiSizeL roiSize);

Supported values for mod:

32f_C3IR_L

32f_AC4IR_L

IppStatus ippiMulC_32f_C4IR_L(const Ipp32f value[4], Ipp32f* pSrcDst, IppSizeL srcDstStep, IppiSizeL roiSize);

Case 17: Not-in-place operation on one-channel integer data with threading layer (TL)functions

IppStatus ippiMulC_<mod>(const Ipp<datatype>* pSrc, IppSizeL srcStep, Ipp<datatype> value, Ipp<datatype>* pDst, IppSizeL dstStep, IppiSizeL roiSize, int scaleFactor);

Supported values for mod:

8u_C1RSfs_LT

16u_C1RSfs_LT

16s_C1RSfs_LT

Case 18: Not-in-place operation on multi-channel integer data with TL functions

IppStatus ippiMulC_<mod>(const Ipp<datatype>* pSrc, IppSizeL srcStep, const Ipp<datatype> value[3], Ipp<datatype>* pDst, IppSizeL dstStep, IppiSizeL roiSize, int scaleFactor);

Supported values for mod:

8u_C3RSfs_LT

16u_C3RSfs_LT

16s_C3RSfs_LT

8u_AC4RSfs_LT

16u_AC4RSfs_LT

16s_AC4RSfs_LT

IppStatus ippiMulC_<mod>(const Ipp<datatype>* pSrc, IppSizeL srcStep, const Ipp<datatype> value[4], Ipp<datatype>* pDst, IppSizeL dstStep, IppiSizeL roiSize, int scaleFactor);

Supported values for mod:

8u_C4RSfs_LT

16u_C4RSfs_LT

16s_C4RSfs_LT

Case 19: Not-in-place operation on one-channel floating point data with TL functions

IppStatus ippiMulC_32f_C1R_LT(const Ipp32f* pSrc, IppSizeL srcStep, Ipp32f value, Ipp32f* pDst, IppSizeL dstStep, IppiSizeL roiSize, int scaleFactor);

Case 20: Not-in-place operation on multi-channel floating point data with TL functions

IppStatus ippiMulC_<mod>(const Ipp32f* pSrc, IppSizeL srcStep, const Ipp32f value[3], Ipp32f* pDst, IppSizeL dstStep, IppiSizeL roiSize);

Supported values for mod:

32f_C3R_LT

32f_AC4R_LT

IppStatus ippiMulC_32f_C4R_LT(const Ipp32f* pSrc, IppSizeL srcStep, const Ipp32f value[4], Ipp32f* pDst, IppSizeL dstStep, IppiSizeL roiSize);

Case 21: In-place operation on one-channel integer data with TL functions

IppStatus ippiMulC_<mod>(Ipp<datatype> value, Ipp<datatype>* pSrcDst, IppSizeL srcDstStep, IppiSizeL roiSize, int scaleFactor);

Supported values for mod:

8u_C1IRSfs_LT

16u_C1IRSfs_LT

16s_C1IRSfs_LT

Case 22: In-place operation on multi-channel integer data with TL functions

IppStatus ippiMulC_<mod>(const Ipp<datatype> value[3], Ipp<datatype>* pSrcDst, IppSizeL srcDstStep, IppiSizeL roiSize, int scaleFactor);

Supported values for mod:

8u_C3IRSfs_LT

16u_C3IRSfs_LT

16s_C3IRSfs_LT

8u_AC4IRSfs_LT

16u_AC4IRSfs_LT

16s_AC4IRSfs_LT

IppStatus ippiMulC_<mod>(const Ipp<datatype> value[4], Ipp<datatype>* pSrcDst, IppSizeL srcDstStep, IppiSizeL roiSize, int scaleFactor);

Supported values for mod:

8u_C4IRSfs_LT

16u_C4IRSfs_LT

16s_C4IRSfs_LT

Case 23: In-place operation on one-channel floating point data with TL functions

IppStatus ippiMulC_32f_C1IR_LT(Ipp32f value, Ipp32f* pSrcDst, IppSizeL srcDstStep, IppiSizeL roiSize);

Case 24: In-place operation on multi-channel integer data with TL functions

IppStatus ippiMulC_<mod>(const Ipp32f value[3], Ipp32f* pSrcDst, IppSizeL srcDstStep, IppiSizeL roiSize);

Supported values for mod:

32f_C3IR_LT

32f_AC4IR_LT

IppStatus ippiMulC_32f_C4IR_LT(const Ipp32f value[4], Ipp32f* pSrcDst, IppSizeL srcDstStep, IppiSizeL roiSize);

Include Files

ippi.h

Flavors with the _LT suffix: ippi_tl.h

Flavors with the _L suffix: ippi_l.h

Domain Dependencies

Flavors declared in ippi.h:

Headers: ippcore.h, ippvm.h, ipps.h

Libraries: ippcore.lib, ippvm.lib, ipps.lib

Flavors declared in ippi_tl.h:

Libraries: ippcore.lib, ippvm.lib, ipps.lib, ippi.lib, ippcore_tl.lib, ippi_tl.lib

Parameters

pSrc

Pointer to the source image ROI.

srcStep

Distance, in bytes, between the starting points of consecutive lines in the source image.

value

The constant value to add to image pixel values (constant vector in case of multi-channel images).

pDst

Pointer to the destination image ROI.

dstStep

Distance, in bytes, between the starting points of consecutive lines in the destination image.

pSrcDst

Pointer to the source and destination image ROI for the in-place operation.

srcDstStep

Distance, in bytes, between the starting points of consecutive lines in the source and destination image for the in-place operation.

roiSize

Size of the source and destination ROI in pixels.

scaleFactor

Scale factor (see Integer Result Scaling).

Description

This function operates with ROI (see Regions of Regions of Interest in Intel IPP).

This function multiplies pixel values of an image by a constant value. For multi-channel images, pixel channel values are multiplied by the components of a constant vector value. For complex data, the function processes both real and imaginary parts of pixel values.

NOTE:

Step values must be positive for functions that operate on complex data.

In case of operations on integer data, the resulting values are scaled by scaleFactor.

Note that the functions with AC4 descriptor do not process alpha channels.

Return Values

ippStsNoErr

Indicates no error. Any other value indicates an error or a warning.

ippStsNullPtrErr

Indicates an error condition if any of the specified pointers is NULL.

ippStsSizeErr

Indicates an error condition if roiSize has a field with zero or negative value.

ippStsStepErr

Indicates an error condition if any of the specified buffer step values is zero or negative for functions that operate on complex data.