API Quick Reference Guide

  • 2020
  • 09/30/2019
  • Public Content
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;

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