Developer Reference

  • 2020
  • 10/21/2020
  • Public Content
Contents

FilterSeparable

Apply the filter to an image.

Syntax

IppStatus ippiFilterSeparable_<mod>(const Ipp<datatype>*
pSrc
, int
srcStep
, Ipp<datatype>*
pDst
, int
dstStep
, IppiSize
roiSize
, IppiBorderType
borderType
, Ipp<datatype>
borderValue
, const IppiFilterSeparableSpec*
pSpec
, Ipp8u*
pBuffer
);
Supported values for
mod
:
8u_C1R
16s_C1R
16u_C1R
32f_C1R
8u_C3R
16s_C3R
16u_C3R
32f_C3R
8u_C4R
16s_C4R
16u_C4R
32f_C4R
IppStatus ippiFilterSeparable_<mod>(const Ipp<srcdatatype>*
pSrc
, int
srcStep
, Ipp<dstdatatype>*
pDst
, int
dstStep
, IppiSize
roiSize
, IppiBorderType
borderType
, Ipp<srcdatatype>
borderValue
, const IppiFilterSeparableSpec*
pSpec
, Ipp8u*
pBuffer
);
Supported values for
mod
:
8u16s_C1R
8u16s_C3R
8u16s_C4R
Platform-aware functions
IppStatus ippiFilterSeparable_<mod>(const Ipp<datatype>*
pSrc
, IppSizeL
srcStep
, Ipp<datatype>*
pDst
, IppSizeL
dstStep
, IppiSizeL
roiSize
, IppiBorderType
borderType
, Ipp<datatype>
borderValue
, const IppiFilterSeparableSpec*
pSpec
, Ipp8u*
pBuffer
);
Supported values for
mod
:
8u_C1R_L
16s_C1R_L
16u_C1R_L
32f_C1R_L
8u_C3R_L
16s_C3R_L
16u_C3R_L
32f_C3R_L
8u_C4R_L
16s_C4R_L
16u_C4R_L
32f_C4R_L
IppStatus ippiFilterSeparable_<mod>(const Ipp<srcdatatype>*
pSrc
, IppSizeL
srcStep
, Ipp<dstdatatype>*
pDst
, IppSizeL
dstStep
, IppiSizeL
roiSize
, IppiBorderType
borderType
, Ipp<srcdatatype>
borderValue
, const IppiFilterSeparableSpec*
pSpec
, Ipp8u*
pBuffer
);
Supported values for
mod
:
8u16s_C1R_L
8u16s_C3R_L
8u16s_C4R_L
Include Files
ippcv.h
ippcv_l.h
Domain Dependencies
Headers:
ippcore.h
,
ippvm.h
,
ipps.h
,
ippi.h
Libraries:
ippcore.lib
,
ippvm.lib
,
ipps.lib
,
ippi.lib
Parameters
pSrc
Pointer to the source image ROI.
srcStep
Distance in bytes between starts of consecuitve lines in the source image.
pDst
Pointer to the destination image ROI.
dstStep
Distance in bytes between starts of consecutive lines in the destination image.
roiSize
Size of the source and destination ROI in pixels.
borderType
Type of border. Possible values are:
ippBorderConst
Values of all border pixels are set to constant.
ippBorderRept
Replicated border is used.
ippBorderWrap
Wrapped border is used.
ippBorderMirror
Mirrored border is used.
ippBorderMirrorR
Mirrored border with replication is used.
borderValue
Constant value (constant vector in case of three- or four-channel data) to assign to the pixels in the
ippBorderConst
border type (not applicable for other border types).
pSpec
Pointer to the filter specification structure.
pBuffer
Pointer to the working buffer.
Description
This function operates with ROI.
Before using this function, compute the size of the external buffer
pBuffer
using the
ippiFilterSeparableGetBufferSize
function.
This function applies the horizontal row filter of the separable convolution kernel to the source image
pSrc
and the column filter of the separable convolution kernel to the intermediate result.
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
.
xAnchor
= (
rowKernelSize
- 1) / 2
.
Return Values
ippStsNoErr
Indicates no error. Any other value indicates an error condition.
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 the
srcStep
or
dstStep
value 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.

Product and Performance Information

1

Intel's compilers may or may not optimize to the same degree for non-Intel microprocessors for optimizations that are not unique to Intel microprocessors. These optimizations include SSE2, SSE3, and SSSE3 instruction sets and other optimizations. Intel does not guarantee the availability, functionality, or effectiveness of any optimization on microprocessors not manufactured by Intel. Microprocessor-dependent optimizations in this product are intended for use with Intel microprocessors. Certain optimizations not specific to Intel microarchitecture are reserved for Intel microprocessors. Please refer to the applicable product User and Reference Guides for more information regarding the specific instruction sets covered by this notice.

Notice revision #20110804