Intel® Integrated Performance Primitives (Intel® IPP) Developer Guide and Reference

ID 790148
Date 3/22/2024
Public

A newer version of this document is available. Customers should click here to go to the newest version.

Document Table of Contents

Remap

Performs the look-up coordinate mapping of the elements of the source volume.

Syntax

Case 1: Operation on non-contiguous volume data

IppStatus ipprRemap_8u_C1PV(const Ipp8u* pSrc[], IpprVolume srcVolume, int srcStep, IpprCuboid srcVoi, const Ipp32f* pxMap[], const Ipp32f* pyMap[], const Ipp32f* pzMap[], int mapStep, Ipp8u* pDst[], int dstStep, IpprVolume dstVolume, int interpolation);

IppStatus ipprRemap_16u_C1PV(const Ipp16u* pSrc[], IpprVolume srcVolume, int srcStep, IpprCuboid srcVoi, const Ipp32f* pxMap[], const Ipp32f* pyMap[], const Ipp32f* pzMap[], int mapStep, Ipp16u* pDst[], int dstStep, IpprVolume dstVolume, int interpolation);

IppStatus ipprRemap_32f_C1PV(const Ipp32f* pSrc[], IpprVolume srcVolume, int srcStep, IpprCuboid srcVoi, const Ipp32f* pxMap[], const Ipp32f* pyMap[], const Ipp32f* pzMap[], int mapStep, Ipp32f* pDst[], int dstStep, IpprVolume dstVolume, int interpolation);

Case 2: Operation on contiguous volume data

IppStatus ipprRemap_8u_C1V(const Ipp8u* pSrc, IpprVolume srcVolume, int srcStep, int srcPlaneStep, IpprCuboid srcVoi, const Ipp32f* pxMap, const Ipp32f* pyMap, const Ipp32f* pzMap, int mapStep, int mapPlaneStep, Ipp8u* pDst, int dstStep, int dstPlaneStep, IpprVolume dstVolume, int interpolation);

IppStatus ipprRemap_16u_C1V(const Ipp16u* pSrc, IpprVolume srcVolume, int srcStep, int srcPlaneStep, IpprCuboid srcVoi, const Ipp32f* pxMap, const Ipp32f* pyMap, const Ipp32f* pzMap, int mapStep, int mapPlaneStep, Ipp16u* pDst, int dstStep, int dstPlaneStep, IpprVolume dstVolume, int interpolation);

IppStatus ipprRemap_32f_C1V(const Ipp32f* pSrc, IpprVolume srcVolume, int srcStep, int srcPlaneStep, IpprCuboid srcVoi, const Ipp32f* pxMap, const Ipp32f* pyMap, const Ipp32f* pzMap, int mapStep, int mapPlaneStep, Ipp32f* pDst, int dstStep, int dstPlaneStep, IpprVolume dstVolume, int interpolation);

Include Files

ippi.h

Domain Dependencies

Headers: ippcore.h, ippvm.h, ipps.h

Libraries: ippcore.lib, ippvm.lib, ipps.lib

Parameters

pSrc

Array of pointers to the planes in the source volume.

srcVolume

Size of the source volume.

srcStep

Distance, in bytes, between the starting points of consecutive lines in every plane of the source volume.

srcPlaneStep

Distance, in bytes, between the starting points of consecutive lines in every plane of the source volume (for 8u_C1V, 16u_C1V, and 32f_C1V flavors).

srcVoi

Region of interest in the source volume.

pxMap, pyMap, pzMap

Arrays of pointers to the starts of the 2D buffers, containing tables of the x-, y- and z-coordinates. If the referenced coordinates correspond to a voxel outside of the source VOI, no mapping of the source pixel is done.

mapStep

Step, in bytes, through the buffers containing tables of the x-, y- and z-coordinates.

mapPlaneStep

Distance, in bytes, between the starting points of consecutive lines in every plane of the buffers containing tables (for 8u_C1V, 16u_C1V, and 32f_C1V flavors).

pDst

Array of the pointers to the planes in the destination volume.

dstStep

Distance, in bytes, between the starting points of consecutive lines in every plane of the destination volume.

dstPlaneStep

Distance, in bytes, between the starting points of consecutive lines in every plane of the destination volume (for 8u_C1V, 16u_C1V, and 32f_C1V flavors).

dstVolume

Size of the destination volume.

interpolation

The type of interpolation, the following values are possible:

  • IPPI_INTER_NN- nearest neighbor interpolation,

  • IPPI_INTER_LINEAR- trilinear interpolation,

  • IPPI_INTER_CUBIC- tricubic interpolation,

  • IPPI_INTER_CUBIC2P_BSPLINE- B-spline,

  • IPPI_INTER_CUBIC2P_CATMULLROM- Catmull-Rom spline,

  • IPPI_INTER_CUBIC2P_B05C03- special two-parameters filter (1/2, 3/10).

Description

This function operates with volume of interest (VOI).

This function transforms the source volume by remapping its voxels. Voxel remapping is performed using pxMap, pyMap and pzMap buffers to look-up the coordinates of the source volume voxel that is written to the target destination volume voxel. The application has to supply these look-up tables.

The remapping of the source voxels to the destination voxels is made according to the following formulas:

dst_voxel[i, j, k] = src_voxel[ pxMap[i, j, k], pyMap[i, j,k], pzMap [i , j,k]]

where i, j, k are the x-, y- and z-coordinates of the target destination volume voxel dst_voxel;

pxMap[i, j, k] contains the x-coordinates of the source volume voxels src_voxel that are written to dst_voxel.

pyMap[i, j, k] contains the y-coordinates of the source volume voxels src_voxel that are written to dst_voxel.

pzMap[i, j, k] contains the z-coordinates of the source volume voxels src_voxel that are written to dst_voxel.

Return Values

ippStsNoErr

Indicates no error. Any other value indicates an error or a warning.

ippStsNullPtrErr

Indicates an error when one of the specified pointers is NULL.

ippStsSizeErr

Indicates an error when width, or height, or depth of the source and destination volumes has zero or negative value.

ippStsInterpolationErr

Indicates an error when interpolation has an illegal value.

ippStsWrongIntersectVOI

Indicates a warning when srcVoi has no intersection with the source volume, operation is not performed.