Performs a full convolution of two images.
Case 1: Operation on integer data
IppStatus ippiConvFull_<mod>(const Ipp<datatype>* pSrc1, int src1Step, IppiSize src1Size, const Ipp<datatype>* pSrc2, int src2Step, IppiSize src2Size, Ipp<datatype>* pDst, int dstStep, int divisor);
Supported values for mod
8u_C1R | 16s_C1R |
8u_C3R | 16s_C3R |
8u_AC4R | 16s_AC4R |
Case 2: Operation on floating-point data
IppStatus ippiConvFull_<mod>(const Ipp32f* pSrc1, int src1Step, IppiSize src1Size, const Ipp32f* pSrc2, int src2Step, IppiSize src2Size, Ipp32f* pDst, int dstStep);
Supported values formod
32f_C1R |
32f_C3R |
32f_AC4R |
pSrc1, pSrc2 |
Pointers to the source images ROI. |
src1Step, src2Step |
Distances in bytes between starts of consecutive lines in the source images. |
src1Size, src2Size |
Sizes in pixels of the source images. |
pDst |
Pointer to the destination buffer ROI. |
dstStep |
Distance in bytes between starts of consecutive lines in the destination image. |
divisor |
The integer value by which the computed result is divided (for operations on integer data only). |
The function ippiConvFull is declared in the ippi.h file. It operates with ROI (see Regions of Interest in Intel IPP).
This function performs a full two-dimensional finite linear convolution operation between two source images pointed to by pSrc1 and pSrc2. If we denote the first source image as a matrix f of size Mf by Nf and the second source image as a matrix g of size Mg by Ng, then the destination image h obtained as a result of the function operation will have the size Mh by Nh, where Mh = Mf + Mg - 1 and Nh = Nf + Ng - 1.
The function ippiConvFull implements the following equation to compute values h[i,j] of the destination image:
where 0 ≤ i < Mh, 0 ≤ i < Nh and
Function flavors that accept input data of the Ipp32f type use the same summation formula, but no scaling of the result is done (divisor = 1 is assumed).
To illustrate the function operation, for the source images f, g of size 3 x 5 represented as
the resulting convolution image h is of size 5 x 9 and contains the following data:
Example “Using the Convolution Functions” shows how to use the function ippiConvFull_16s_C1R.
ippStsNoErr |
Indicates no error. Any other value indicates an error. |
ippStsNullPtrErr |
Indicates an error condition if pSrc1, pSrc2, or pDst is NULL. |
ippStsSizeErr |
Indicates an error condition if src1Size or src2Size has a zero or negative value. |
ippStsStepErr |
Indicates an error condition if src1Step, src2Step, or dstStep has a zero or negative value. |
ippStsDivisorErr |
Indicates an error condition if divisor has the zero value. |
ippStsMemAllocErr |
Indicates an error condition if memory allocation failed. |
Copyright © 2000 - 2011, Intel Corporation. All rights reserved.