Visible to Intel only — GUID: GUID-2D1684BC-03CF-40CB-8FC5-56B308CD6C55
Visible to Intel only — GUID: GUID-2D1684BC-03CF-40CB-8FC5-56B308CD6C55
SubC
Subtracts a constant from pixel values of an image.
Syntax
Case 1: Not-in-place operation on one-channel integer or complex data
IppStatus ippiSubC_<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 ippiSubC_<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 ippiSubC_<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 ippiSubC_<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 ippiSubC_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 ippiSubC_32f_C3R(const Ipp<datatype>* pSrc, int srcStep, const Ipp<datatype> value[3], Ipp<datatype>* pDst, int dstStep, IppiSize roiSize);
IppStatus ippiSubC_32f_C4R(const Ipp32f* pSrc, int srcStep, const Ipp32f value[4], Ipp32f* pDst, int dstStep, IppiSize roiSize);
IppStatus ippiSubC_<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 |
Case 5: In-place operation on one-channel integer or complex data
IppStatus ippiSubC_<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 ippiSubC_<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 ippiSubC_<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 ippiSubC_32f_C1IR(Ipp<datatype> value, Ipp<datatype>* pSrcDst, int srcDstStep, IppiSize roiSize);
Case 8: In-place operation on multi-channel floating-point or complex data:
IppStatus ippiSubC_<mod>(const Ipp<datatype> value[3], Ipp<datatype>* pSrcDst, int srcDstStep, IppiSize roiSize);
Supported values for mod:
32f_C3IR |
32f_AC4IR |
IppStatus ippiSubC_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 ippiSubC_<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 ippiSubC_<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 ippiSubC_<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 ippiSubC_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 ippiSubC_<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 ippiSubC_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 ippiSubC_<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 ippiSubC_<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 ippiSubC_<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 ippiSubC_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 ippiSubC_<mod>(const Ipp32f value[3], Ipp32f* pSrcDst, IppSizeL srcDstStep, IppiSizeL roiSize);
Supported values for mod:
32f_C3IR_L |
32f_AC4IR_L |
IppStatus ippiSubC_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 ippiSubC_<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 ippiSubC_<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 ippiSubC_<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 ippiSubC_32f_C1R_LT(const Ipp32f* pSrc, IppSizeL srcStep, Ipp32f value, Ipp32f* pDst, IppSizeL dstStep, IppiSizeL roiSize);
Case 20: Not-in-place operation on multi-channel floating point data with TL functions
IppStatus ippiSubC_<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 ippiSubC_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 ippiSubC_<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 ippiSubC_<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 ippiSubC_<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 ippiSubC_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 ippiSubC_<mod>(const Ipp32f value[3], Ipp32f* pSrcDst, IppSizeL srcDstStep, IppiSizeL roiSize);
Supported values for mod:
32f_C3IR_LT |
32f_AC4IR_LT |
IppStatus ippiSubC_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 starts of consecutive lines in the source image. |
value |
The constant value to subtract from each pixel value in a source image (constant vector in case of multi-channel images). |
pDst |
Pointer to the destination image ROI. |
dstStep |
Distance in bytes between starts 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 starts 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 Interest in Intel IPP).
This function changes image intensity by subtracting the constant value from pixel values of an image buffer. For multi-channel images, the components of a constant vector value are subtracted from pixel channel values. For complex data, the function processes both real and imaginary parts of pixel values.
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 the 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 one 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. |