Developer Reference for Intel® Integrated Performance Primitives
Apply the filter with border to image rows.
Case 1: Operation on one-channel integer data
IppStatus ippiFilterRowBorderPipeline_<mod>(const Ipp<srcDatatype>* pSrc, int srcStep, Ipp<dstDatatype>** ppDst, IppiSize roiSize, const Ipp<dstDatatype>* pKernel, int kernelSize, int xAnchor, IppiBorderType borderType, Ipp<srcDatatype> borderValue, int divisor, Ipp8u* pBuffer);
Supported values for mod:
8u16s_C1R | 16s_C1R | 16u_C1R |
IppStatus ippiFilterRowBorderPipeline_Low_16s_C1R(const Ipp16s* pSrc, int srcStep, Ipp16s** ppDst, IppiSize roiSize, const Ipp16s* pKernel, int kernelSize, int xAnchor, IppiBorderType borderType, Ipp16s borderValue, int divisor, Ipp8u* pBuffer);
Case 2: Operation on one-channel floating point data
IppStatus ippiFilterRowBorderPipeline_32f_C1R(const Ipp32f* pSrc, int srcStep, Ipp32f** ppDst, IppiSize roiSize, const Ipp32f* pKernel, int kernelSize, int xAnchor, IppiBorderType borderType, Ipp32f borderValue, Ipp8u* pBuffer);
Case 3: Operation on three-channel integer data
IppStatus ippiFilterRowBorderPipeline_<mod>(const Ipp<srcDatatype>* pSrc, int srcStep, Ipp<dstDatatype>** ppDst, IppiSize roiSize, const Ipp<dstDatatype>* pKernel, int kernelSize, int xAnchor, IppiBorderType borderType, Ipp<srcDatatype> borderValue[3], int divisor, Ipp8u* pBuffer);
Supported values for mod:
8u16s_C3R | 16s_C3R | 16u_C3R |
IppStatus ippiFilterRowBorderPipeline_Low_16s_C3R(const Ipp16s* pSrc, int srcStep, Ipp16s** ppDst, IppiSize roiSize, const Ipp16s* pKernel, int kernelSize, int xAnchor, IppiBorderType borderType, Ipp16s borderValue[3], int divisor, Ipp8u* pBuffer);
Case 4: Operation on three-channel floating point data
IppStatus ippiFilterRowBorderPipeline_32f_C3R(const Ipp32f* pSrc, int srcStep, Ipp32f** ppDst, IppiSize roiSize, const Ipp32f* pKernel, int kernelSize, int xAnchor, IppiBorderType borderType, Ipp32f borderValue[3], Ipp8u* pBuffer);
ippcv.h
Headers: ippcore.h, ippvm.h, ipps.h, ippi.h
Libraries: ippcore.lib, ippvm.lib, ipps.lib, ippi.lib
pSrc |
Pointer to the source image ROI. |
||||||||||||
srcStep |
Distance in bytes between starts of consecutive lines in the source image. |
||||||||||||
ppDst |
Double pointer to the destination inage ROI. |
||||||||||||
roiSize |
Size of the source and destination ROI in pixels. |
||||||||||||
pKernel |
Pointer to the row kernel values. |
||||||||||||
kernelSize |
Size of the kernel in pixels. |
||||||||||||
xAnchor |
Anchor value specifying the kernel row alignment with respect to the positionof the input pixel. |
||||||||||||
borderType |
Type of border (see Borders in Neighborhood Operations); following values are possible:
|
||||||||||||
borderValue |
The constant value (constant vector in case of three-channel data) to assign to the pixels in the constant border (not applicable for other border's type). |
||||||||||||
divisor |
Value by which the computed result is divided (for operations on integer data only). |
||||||||||||
pBuffer |
Pointer to the working buffer. |
These functions operate with ROI (see Regions Regions of Interest in Intel IPP ).
The function ippiFilterRowBorderPipeline_Low performs calculation exclusively with the 16s-data, and the input data must be in the range ensuring that the overflow does not occur during calculation and the result can be represented by a 32-bit integer number.
These functions apply the horizontal row filter of the separable convolution kernel to the source image pSrc. The filter coefficients are placed in the reversed order. For integer data:
and for floating point data:
Here j = 0, ... roiSize.width - 1, i = 0,... roiSize.height - 1. The values of pixels of the source image that lies outside of the image ROI (that is, if for pixel pSrc[i,l] l ∉ [0, roiSize.width-1] are set in accordance with the specified parameters borderType and borderValue.
This function can be used to organize the separable convolution as a step of the image processing pipeline.
The functions requires the external buffer pBuffer, its size should be previously computed by the functions ippiFilterRowBorderPipelineGetBufferSize and ippiFilterRowBorderPipelineGetBufferSize_Low respectively
ippStsNoErr |
Indicates no error. Any other value indicates an error. |
ippStsNullPtrErr |
Indicates an error condition if one of the specified pointers is NULL. |
ippStsSizeErr |
Indicates an error condition if roiSize has a field with a zero or negative value. |
ippStsStepErr |
Indicates an error condition if srcStep or dstStep is less than roiSize.width * <pixelSize> |
ippStsNotEvenStepErr |
Indicates an error condition if one of the step values is not divisible by 4 for floating-point images, or by 2 for short-integer images. |
ippStsAnchorErr |
Indicates an error condition if xAnchor has a wrong value. |
ippStsBorderErr |
Indicates an error condition if borderType has a wrong value. |
ippStsBadArgErr |
Indicates an error condition if divisor is equal to 0. |