Intel IPP Integration Wrappers Developer Guide and Reference

ID 751823
Date 1/18/2023
Public
Document Table of Contents

Image Processing Structures

IwiImage

The IwiImage is a base structure for IW image processing functions. This structure stores input and output data.

typedef struct _IwiImage { void *m_pBuffer; // Pointer to the image buffer. Should NULL for any external buffer. void *m_ptr; // Pointer to the start of actual image data. IwSize m_step; // Distance, in bytes, between the starting points of consecutive lines in the source image memory. IwiSize m_size; // Image size, in pixels. IppDataType m_dataType; // Image pixel type. int m_typeSize; // Size of image pixel type, in bytes. int m_channels; // Number of image channels. IwiBorderSize m_inMemSize; // Memory border size around image data. } IwiImage;

IwiTile

The IwiTile structure is a main structure for semi-automatic tiling operations. This structure provides main context for tiling across IW API and contains mostly values for complex pipelines tiling.

typedef struct _IwiTile { IwiRoi m_srcRoi; // Absolute ROI for the source image IwiRoi m_dstRoi; // Absolute ROI for the destination image IwiPoint m_untaintSrcPos; // Absolute unaligned source ROI position IwiPoint m_untaintDstPos; // Absolute unaligned destination ROI position IwiRoi m_boundSrcRoi; // Relative ROI for the source image bounded to the buffer IwiRoi m_boundDstRoi; // Relative ROI for the destination image bounded to the buffer IwiSize m_srcBufferSize; // Actual source buffer size IwiSize m_dstBufferSize; // Actual destination buffer size IwiSize m_srcImageSize; // Full source image size IwiSize m_dstImageSize; // Full destination image size IwiSize m_srcExImageSize; // Source image size extended on parent InMem border size IwiSize m_dstExImageSize; // Destination image size extended on parent InMem border size IwiSize m_maxTileSize; // Maximum tile size IwiBorderType m_borderType; // Type of source image border IwiBorderSize m_borderSize; // Border required for the current operation IwiBorderSize m_borderSizeAcc; // Accumulated border size for current and parent operations IwiBorderSize m_externalMem; // Amount of memory required to process InMem border for current edge tile IwiBorderSize m_externalMemAcc; // Amount of memory required to process InMem border for all edge tiles IwiTileTransform m_transformStruct; // Transformation proxy functions and data structure int m_initialized; // Internal initialization states struct _IwiTile *m_pChild; // Next Tile in the pipeline struct _IwiTile *m_pParent; // Previous Tile in the pipeline } IwiTile;

IwiBorderSize

The IwiBorderSize structure stores border sizes for image processing functions.

typedef struct { IwSize left; IwSize top; IwSize right; IwSize bottom; } IwiBorderSize;

_IwiChDescriptor

The special channel descriptor _IwiChDescriptor specifies how to process non-standard channels configurations.

  • If the descriptor is not supported, the library returns an error.
  • If the descriptor is for different channels number, the library ignores it.
typedef enum _IwiChDescriptor { iwiChDesc_None = 0, // Process all channels // C4 descriptors iwiChDesc_C4M1110 = 0x00004007, // Process only the first 3 channels as RGB. Equivalent to AC4 functions from the main Intel(R) IPP library. iwiChDesc_C4M1000 = 0x00004001, // Process only the first channel as gray-scale. iwiChDesc_C4M1001 = 0x00004009, // Process only the first channel and the last channel as gray-scale with alpha. iwiChDesc_C4M1XX0 = 0x00064001, // Process only the first channel as gray-scale and replicate it to remaining color channels. iwiChDesc_C4M1XX1 = 0x00064009 // Process only the first channel and the last channel as gray-scale with alpha and replicate gray-scale to remaining color channels. } IwiChDescriptor;