NVIDIA Performance Primitives (NPP)  Version 10.0
Functions
FilterWienerBorder

Noise removal filtering of an image using an adaptive Wiener filter with border control. More...

Functions

NppStatus  nppiFilterWienerBorder_8u_C1R (const Npp8u *pSrc, Npp32s nSrcStep, NppiSize oSrcSize, NppiPoint oSrcOffset, Npp8u *pDst, Npp32s nDstStep, NppiSize oSizeROI, NppiSize oMaskSize, NppiPoint oAnchor, Npp32f aNoise[1], NppiBorderType eBorderType)
  Single channel 8-bit unsigned Wiener filter with border control. More...
 
NppStatus  nppiFilterWienerBorder_8u_C3R (const Npp8u *pSrc, Npp32s nSrcStep, NppiSize oSrcSize, NppiPoint oSrcOffset, Npp8u *pDst, Npp32s nDstStep, NppiSize oSizeROI, NppiSize oMaskSize, NppiPoint oAnchor, Npp32f aNoise[3], NppiBorderType eBorderType)
  Three channel 8-bit unsigned Wiener filter with border control. More...
 
NppStatus  nppiFilterWienerBorder_8u_C4R (const Npp8u *pSrc, Npp32s nSrcStep, NppiSize oSrcSize, NppiPoint oSrcOffset, Npp8u *pDst, Npp32s nDstStep, NppiSize oSizeROI, NppiSize oMaskSize, NppiPoint oAnchor, Npp32f aNoise[4], NppiBorderType eBorderType)
  Four channel 8-bit unsigned Wiener filter with border control. More...
 
NppStatus  nppiFilterWienerBorder_8u_AC4R (const Npp8u *pSrc, Npp32s nSrcStep, NppiSize oSrcSize, NppiPoint oSrcOffset, Npp8u *pDst, Npp32s nDstStep, NppiSize oSizeROI, NppiSize oMaskSize, NppiPoint oAnchor, Npp32f aNoise[3], NppiBorderType eBorderType)
  Four channel 8-bit unsigned Wiener filter with border control, ignoring alpha channel. More...
 
NppStatus  nppiFilterWienerBorder_16s_C1R (const Npp16s *pSrc, Npp32s nSrcStep, NppiSize oSrcSize, NppiPoint oSrcOffset, Npp16s *pDst, Npp32s nDstStep, NppiSize oSizeROI, NppiSize oMaskSize, NppiPoint oAnchor, Npp32f aNoise[1], NppiBorderType eBorderType)
  Single channel 16-bit signed Wiener filter with border control. More...
 
NppStatus  nppiFilterWienerBorder_16s_C3R (const Npp16s *pSrc, Npp32s nSrcStep, NppiSize oSrcSize, NppiPoint oSrcOffset, Npp16s *pDst, Npp32s nDstStep, NppiSize oSizeROI, NppiSize oMaskSize, NppiPoint oAnchor, Npp32f aNoise[3], NppiBorderType eBorderType)
  Three channel 16-bit signed Wiener filter with border control. More...
 
NppStatus  nppiFilterWienerBorder_16s_C4R (const Npp16s *pSrc, Npp32s nSrcStep, NppiSize oSrcSize, NppiPoint oSrcOffset, Npp16s *pDst, Npp32s nDstStep, NppiSize oSizeROI, NppiSize oMaskSize, NppiPoint oAnchor, Npp32f aNoise[4], NppiBorderType eBorderType)
  Four channel 16-bit signed Wiener filter with border control. More...
 
NppStatus  nppiFilterWienerBorder_16s_AC4R (const Npp16s *pSrc, Npp32s nSrcStep, NppiSize oSrcSize, NppiPoint oSrcOffset, Npp16s *pDst, Npp32s nDstStep, NppiSize oSizeROI, NppiSize oMaskSize, NppiPoint oAnchor, Npp32f aNoise[3], NppiBorderType eBorderType)
  Four channel 16-bit signed Wiener filter with border control, ignoring alpha channel. More...
 
NppStatus  nppiFilterWienerBorder_32f_C1R (const Npp32f *pSrc, Npp32s nSrcStep, NppiSize oSrcSize, NppiPoint oSrcOffset, Npp32f *pDst, Npp32s nDstStep, NppiSize oSizeROI, NppiSize oMaskSize, NppiPoint oAnchor, Npp32f aNoise[1], NppiBorderType eBorderType)
  Single channel 32-bit float Wiener filter with border control. More...
 
NppStatus  nppiFilterWienerBorder_32f_C3R (const Npp32f *pSrc, Npp32s nSrcStep, NppiSize oSrcSize, NppiPoint oSrcOffset, Npp32f *pDst, Npp32s nDstStep, NppiSize oSizeROI, NppiSize oMaskSize, NppiPoint oAnchor, Npp32f aNoise[3], NppiBorderType eBorderType)
  Three channel 32-bit float Wiener filter with border control. More...
 
NppStatus  nppiFilterWienerBorder_32f_C4R (const Npp32f *pSrc, Npp32s nSrcStep, NppiSize oSrcSize, NppiPoint oSrcOffset, Npp32f *pDst, Npp32s nDstStep, NppiSize oSizeROI, NppiSize oMaskSize, NppiPoint oAnchor, Npp32f aNoise[4], NppiBorderType eBorderType)
  Four channel 32-bit float Wiener filter with border control. More...
 
NppStatus  nppiFilterWienerBorder_32f_AC4R (const Npp32f *pSrc, Npp32s nSrcStep, NppiSize oSrcSize, NppiPoint oSrcOffset, Npp32f *pDst, Npp32s nDstStep, NppiSize oSizeROI, NppiSize oMaskSize, NppiPoint oAnchor, Npp32f aNoise[3], NppiBorderType eBorderType)
  Four channel 32-bit float Wiener filter with border control, ignoring alpha channel. More...
 

Detailed Description

Noise removal filtering of an image using an adaptive Wiener filter with border control.

Pixels under the source mask are used to generate statistics about the local neighborhood which are then used to control the amount of adaptive noise filtering locally applied.

Currently only the NPP_BORDER_REPLICATE border type operation is supported.

Common parameters for nppiFilterWienerBorder functions include:

Parameters
pSrc Source-Image Pointer.
nSrcStep Source-Image Line Step.
oSrcSize Source image width and height in pixels relative to pSrc.
oSrcOffset The pixel offset that pSrc points to relative to the origin of the source image.
pDst Destination-Image Pointer.
nDstStep Destination-Image Line Step.
oSizeROI Region-of-Interest (ROI).
oMaskSize Pixel Width and Height of the rectangular region of interest surrounding the source pixel.
oAnchor Positive X and Y relative offsets of primary pixel in region of interest surrounding the source pixel relative to bottom right of oMaskSize.
aNoise Fixed size array of per-channel noise variance level value in range of 0.0F to 1.0F.
eBorderType The border type operation to be applied at source image border boundaries.
Returns
Image Data Related Error Codes, ROI Related Error Codes

For each pixel in the source image the function estimates the local mean and variance in the neighborhood defined by oMaskSize relative to the primary source pixel located at oAnchor.x and oAnchor.y. Given an oMaskSize with width $W$ and height $H$, the mean, variance, and destination pixel value will be computed per channel as

\[Mean = \frac{1}{W\cdot H}\sum_{j=0}^{H-1}\sum_{i=0}^{W-1}pSrc(j,i)\]

\[Variance^2 = \frac{1}{W\cdot H}\sum_{j=0}^{H-1}\sum_{i=0}^{W-1}(pSrc(j,i)^2-Mean^2)\]

\[pDst(j,i) = Mean+\frac{(Variance^2-NoiseVariance)}{Variance^2}\cdot {(pSrc(j,i)-Mean)}\]

Function Documentation

NppStatus nppiFilterWienerBorder_16s_AC4R ( const Npp16s pSrc,
Npp32s  nSrcStep,
NppiSize  oSrcSize,
NppiPoint  oSrcOffset,
Npp16s pDst,
Npp32s  nDstStep,
NppiSize  oSizeROI,
NppiSize  oMaskSize,
NppiPoint  oAnchor,
Npp32f  aNoise[3],
NppiBorderType  eBorderType 
)

Four channel 16-bit signed Wiener filter with border control, ignoring alpha channel.

For common parameter descriptions, see Common parameters for nppiFilterWienerBorder functions.

NppStatus nppiFilterWienerBorder_16s_C1R ( const Npp16s pSrc,
Npp32s  nSrcStep,
NppiSize  oSrcSize,
NppiPoint  oSrcOffset,
Npp16s pDst,
Npp32s  nDstStep,
NppiSize  oSizeROI,
NppiSize  oMaskSize,
NppiPoint  oAnchor,
Npp32f  aNoise[1],
NppiBorderType  eBorderType 
)

Single channel 16-bit signed Wiener filter with border control.

For common parameter descriptions, see Common parameters for nppiFilterWienerBorder functions.

NppStatus nppiFilterWienerBorder_16s_C3R ( const Npp16s pSrc,
Npp32s  nSrcStep,
NppiSize  oSrcSize,
NppiPoint  oSrcOffset,
Npp16s pDst,
Npp32s  nDstStep,
NppiSize  oSizeROI,
NppiSize  oMaskSize,
NppiPoint  oAnchor,
Npp32f  aNoise[3],
NppiBorderType  eBorderType 
)

Three channel 16-bit signed Wiener filter with border control.

For common parameter descriptions, see Common parameters for nppiFilterWienerBorder functions.

NppStatus nppiFilterWienerBorder_16s_C4R ( const Npp16s pSrc,
Npp32s  nSrcStep,
NppiSize  oSrcSize,
NppiPoint  oSrcOffset,
Npp16s pDst,
Npp32s  nDstStep,
NppiSize  oSizeROI,
NppiSize  oMaskSize,
NppiPoint  oAnchor,
Npp32f  aNoise[4],
NppiBorderType  eBorderType 
)

Four channel 16-bit signed Wiener filter with border control.

For common parameter descriptions, see Common parameters for nppiFilterWienerBorder functions.

NppStatus nppiFilterWienerBorder_32f_AC4R ( const Npp32f pSrc,
Npp32s  nSrcStep,
NppiSize  oSrcSize,
NppiPoint  oSrcOffset,
Npp32f pDst,
Npp32s  nDstStep,
NppiSize  oSizeROI,
NppiSize  oMaskSize,
NppiPoint  oAnchor,
Npp32f  aNoise[3],
NppiBorderType  eBorderType 
)

Four channel 32-bit float Wiener filter with border control, ignoring alpha channel.

For common parameter descriptions, see Common parameters for nppiFilterWienerBorder functions.

NppStatus nppiFilterWienerBorder_32f_C1R ( const Npp32f pSrc,
Npp32s  nSrcStep,
NppiSize  oSrcSize,
NppiPoint  oSrcOffset,
Npp32f pDst,
Npp32s  nDstStep,
NppiSize  oSizeROI,
NppiSize  oMaskSize,
NppiPoint  oAnchor,
Npp32f  aNoise[1],
NppiBorderType  eBorderType 
)

Single channel 32-bit float Wiener filter with border control.

For common parameter descriptions, see Common parameters for nppiFilterWienerBorder functions.

NppStatus nppiFilterWienerBorder_32f_C3R ( const Npp32f pSrc,
Npp32s  nSrcStep,
NppiSize  oSrcSize,
NppiPoint  oSrcOffset,
Npp32f pDst,
Npp32s  nDstStep,
NppiSize  oSizeROI,
NppiSize  oMaskSize,
NppiPoint  oAnchor,
Npp32f  aNoise[3],
NppiBorderType  eBorderType 
)

Three channel 32-bit float Wiener filter with border control.

For common parameter descriptions, see Common parameters for nppiFilterWienerBorder functions.

NppStatus nppiFilterWienerBorder_32f_C4R ( const Npp32f pSrc,
Npp32s  nSrcStep,
NppiSize  oSrcSize,
NppiPoint  oSrcOffset,
Npp32f pDst,
Npp32s  nDstStep,
NppiSize  oSizeROI,
NppiSize  oMaskSize,
NppiPoint  oAnchor,
Npp32f  aNoise[4],
NppiBorderType  eBorderType 
)

Four channel 32-bit float Wiener filter with border control.

For common parameter descriptions, see Common parameters for nppiFilterWienerBorder functions.

NppStatus nppiFilterWienerBorder_8u_AC4R ( const Npp8u pSrc,
Npp32s  nSrcStep,
NppiSize  oSrcSize,
NppiPoint  oSrcOffset,
Npp8u pDst,
Npp32s  nDstStep,
NppiSize  oSizeROI,
NppiSize  oMaskSize,
NppiPoint  oAnchor,
Npp32f  aNoise[3],
NppiBorderType  eBorderType 
)

Four channel 8-bit unsigned Wiener filter with border control, ignoring alpha channel.

For common parameter descriptions, see Common parameters for nppiFilterWienerBorder functions.

NppStatus nppiFilterWienerBorder_8u_C1R ( const Npp8u pSrc,
Npp32s  nSrcStep,
NppiSize  oSrcSize,
NppiPoint  oSrcOffset,
Npp8u pDst,
Npp32s  nDstStep,
NppiSize  oSizeROI,
NppiSize  oMaskSize,
NppiPoint  oAnchor,
Npp32f  aNoise[1],
NppiBorderType  eBorderType 
)

Single channel 8-bit unsigned Wiener filter with border control.

For common parameter descriptions, see Common parameters for nppiFilterWienerBorder functions.

NppStatus nppiFilterWienerBorder_8u_C3R ( const Npp8u pSrc,
Npp32s  nSrcStep,
NppiSize  oSrcSize,
NppiPoint  oSrcOffset,
Npp8u pDst,
Npp32s  nDstStep,
NppiSize  oSizeROI,
NppiSize  oMaskSize,
NppiPoint  oAnchor,
Npp32f  aNoise[3],
NppiBorderType  eBorderType 
)

Three channel 8-bit unsigned Wiener filter with border control.

For common parameter descriptions, see Common parameters for nppiFilterWienerBorder functions.

NppStatus nppiFilterWienerBorder_8u_C4R ( const Npp8u pSrc,
Npp32s  nSrcStep,
NppiSize  oSrcSize,
NppiPoint  oSrcOffset,
Npp8u pDst,
Npp32s  nDstStep,
NppiSize  oSizeROI,
NppiSize  oMaskSize,
NppiPoint  oAnchor,
Npp32f  aNoise[4],
NppiBorderType  eBorderType 
)

Four channel 8-bit unsigned Wiener filter with border control.

For common parameter descriptions, see Common parameters for nppiFilterWienerBorder functions.