------------------------------------------------------------------------------- Matrox Imaging Library (8.0) HeliosPA.txt Readme File September 2, 2004 Copyright© 2004 by Matrox Electronic Systems Ltd. All rights reserved. ------------------------------------------------------------------------------- The following file contains a list of all the functions that are supported on the Matrox Helios Pixel-Accelerator (PA). Contents 1. Buffer management commands. 2. Image processing commands. ------------------------------------------------------------------------------- Restrictions for all functions ------------------------------------------------------------------------------- - All M_IMAGE buffers must be M_ON_BOARD. - All M_KERNEL, M_LUT, M_ARRAY, M_STRUCT, M_EVENT_LIST and M_COUNT_LIST must be allocated on system but NOT on board. - No M_IMAGE buffers 32+M_FLOAT supported. - 1-bit buffers must be byte aligned and SizeX must be a multiple of 8 (ie: OffsetX % 8 and SizeX % 8). ******************************************************************************* 1. Buffer management commands. ******************************************************************************* 1.0 MbufBayer: - White Balance Coefficients Array must be allocated 32+M_FLOAT (sizeX of 3) if not M_DEFAULT - 8bits, 16bits buffers - Minimum buffer size X and Y must be 2. - Buffer size X and Y must be multiple of 2. ******************************************************************************* 2. Image processing commands. ******************************************************************************* 2.0 MimArith: M_ADD: M_ADD_CONST: M_SUB: M_SUB_CONST: - 8bits, 16bits, 32bits buffers - If M_SATURATION and source buffers are 32 bits source type must be the same as destination type. M_SUB_ABS: M_MULT: M_MULT_CONST: - 8bits, 16bits, 32bits buffers - No M_SATURATION M_CONST_SUB - 8bits, 16bits, 32bits buffers - M_SATURATION no 32-bit source buffers and no 32+M_UNSIGNED destination buffers M_AND: M_NAND: M_OR: M_XOR: M_NOR: M_XNOR: M_NOT: - 8bits, 16bits, 32bits buffers - 1-bit buffers if all sources and destination are 1-bit M_AND_CONST: M_NAND_CONST: M_OR_CONST: M_XOR_CONST: M_NOR_CONST: M_XNOR_CONST: M_DIV_CONST: M_CONST_DIV: M_NEG: M_ABS: - 8bits, 16bits, 32bits buffers M_DIV: - Sources must be same sign - 8bits, 16bits, 32bits buffers M_DIV+M_FIXED_POINT: - Source buffer 8bits - Destination buffer 16bits M_MIN: M_MIN_CONST: M_MAX: M_MAX_CONST: - 8bits, 16bits, 32bits+M_SIGNED buffers M_DIV_CONST+M_FIXED_POINT: M_CONST_DIV+M_FIXED_POINT: - NOT SUPPORTED 2.1 MimArithMultiple: M_OFFSET_GAIN: - 8bits, or 16bits UNSIGNED sources buffers - Source Size bit smaller or equal Destination Size bit - All sources of same size bit - Destination buffer 8-bit, 16bit, 32-bit UNSIGNED M_WEIGHTED_AVERAGE: - 8bits, or 16bits UNSIGNED sources buffers - Source Size bit smaller or equal Destination Size bit - All sources of same size bit - Destination buffer 8-bit, 16bit, 32-bit UNSIGNED if no SATURATION M_MULTIPLY_ACCUMULATE_1: - 8bits, or 16bits buffers M_MULTIPLY_ACCUMULATE_2: - Sources must be same sign - 8bits, or 16bits buffers 2.2 MimBinarize: - 1bit, 8bits, 16bits, 32bits buffers 2.3 MimClip: - 8bits, 16bits, 32bits buffers 2.4 MimConnectMap: - 1bit, 8bits, 16bits buffers 2.5 MimConvert: M_YUV16_TO_RGB: - Source YUV16 packed, destination RGB24 planar M_RGB_TO_YUV16: - Source RGB24 planar, destination YUV16 packed M_RGB_TO_L: M_L_TO_RGB: M_RGB_TO_Y: - Only 8-bit buffers 2.6 MimConvolve: Custom Kernel: - 8bits, 16bits source and kernel buffers - 8bits, 16bits, 32 bits destination buffer M_SMOOTH: M_SHARPEN: M_SHARPEN2: M_VERT_EDGE: M_HORIZ_EDGE: M_LAPLACIAN_EDGE: M_LAPLACIAN_EDGE2: - 8bits, 16bits source buffer - 8bits, 16bits, 32 bits destination buffer M_EDGE_DETECT: - 8bits, 16bits buffers - Source and destination buffers must be same type - Kernel Value must be 1 or 2. M_EDGE_DETECT2: - 8bits, 16bits source buffer - Kernel Value cannot 2 - M_USE_RESERVED_ANGLE_VALUE not supported 2.7 MimCountDifference: - 8bits, 16 bits buffers of same sign - 1bits source 1 and source 2 buffers - 32bits source 1 and source 2 buffers 2.8 MimDilate: - 8bits, 16bits with mode M_GRAYSCALE - 1bit with mode M_BINARY - Source type must be the same as destination type. 2.9 MimDistance: - 8bits, 16bits buffers 2.10 MimErode: - 8bits, 16bits with mode M_GRAYSCALE - 1bit with mode M_BINARY - Source type must be the same as destination type. 2.11 MimFindExtreme: - 8bits, 16 bits, 32bits buffers - M_MIN_VALUE, M_MAX_VALUE, M_MIN_VALUE+M_MAX_VALUE M_MIN_ABS_VALUE, M_MAX_ABS_VALUE, M_MIN_ABS_VALUE+ M_MAX_ABS_VALUE 2.12 MimFlip: 2.12.1 Source and Destination buffers M_ON_BOARD: - Source and destination buffers must be of same type - M_FLIP_VERTICAL only 2.12.2 Source M_ON_BOARD, Destination M_OFF_BOARD: - Source planar to destination planar - Source planar to destination packed (RGB/BGR) - Source and destination buffers must be of same type - M_FLIP_VERTICAL, M_FLIP_HORIZONTAL 2.12.3- Source M_OFF_BOARD, Destination M_ON_BOARD: - Source planar to destination planar - Source packed (RGB/BGR) to destination planar - Source and destination buffers must be of same type - M_FLIP_VERTICAL, M_FLIP_HORIZONTAL 2.13 MimLutMap: - 8bits, 16bits source buffer - 8bits, 16bits, 32bits LUT - 8bits, 16bits, 32bits destination buffer - LUT and Dest buffer must have same type. - Supported LUT are : (max nb elements 4096) SRC max nb bits => Dst bits Lut Size bits Lut max Size X 5 => 8 8 32 6 => 8 8 64 7 => 8 8 128 8 => 8 8 256 8 => 16 16 256 8 => 32 32 256 9 => 8 8 512 9 => 16 16 512 9 => 32 32 512 10 => 8 8 1024 10 => 16 16 1024 10 => 32 32 1024 11 => 8 8 2048 11 => 16 16 2048 12 => 8 8 4096 2.14 MimMorphic: M_DILATE: M_ERODE: - 8bits, 16bits with mode M_GRAYSCALE - 1bit with mode M_BINARY - Source type must be the same as destination type. M_THICK: M_THIN: - 8bits, 16bits with mode M_GRAYSCALE - 1bit with mode M_BINARY - Source type must be the same as destination type. - Kernel center offset X and Y must be centered. M_MATCH: - 1bit, 8bits, 16bits buffers - Mode M_BINARY only 2.15 MimRank: - 1bit, 8bits, 16bits source buffer - M_3x3_CROSS only with 16bits source buffer - 8bits, 16 bits destination buffer - Rank M_MEDIAN only 2.16 MimResize: 2.16.1 Source and Destination buffers M_ON_BOARD: - Source and destination buffers must be of same type - 8+M_UNSIGNED, 16+M_SIGNED buffers - M_NEAREST_NEIGHBOR: - Scale X: n, 1.0/n (where n can be 1, 2, 4, 8) - Scale Y: n, 1.0/n (where n can be 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16) - M_ INTERPOLATE, M_AVERAGE: - Scale X, Y: 1.0/n (where n can be 1, 2, 4, 8) - M_ INTERPOLATE, M_BILINEAR: - Scale X, Y: 1, 2, 4, 8 2.16.2 Source M_ON_BOARD, Destination M_OFF_BOARD: - Source planar to destination planar - Source planar to destination packed (RGB/BGR) - Source and destination buffers must be of same type - 8bits, 16bits buffers - M_NEAREST_NEIGHBOR: - Scale X: 1, 1/2, 1/3, 1/4, 1/5, 1/6, 1/7, 1/8, 1/9, 1/10, 1/11, 1/12, 1/13, 1/14, 1/15, 1/16 - Scale Y: 1, 1/2, 1/3, 1/4, 1/5, 1/6, 1/7, 1/8, 1/9, 1/10, 1/11, 1/12, 1/13, 1/14, 1/15, 1/16 2.16.3 Source M_OFF_BOARD, Destination M_ON_BOARD: - Source planar to destination planar - Source packed (RGB/BGR) to destination planar - Source and destination buffers must be of same type - 8bits, 16bits buffers - M_NEAREST_NEIGHBOR: - Scale X: 1, 1/2, 1/3, 1/4, 1/5, 1/6, 1/7, 1/8, 1/9, 1/10, 1/11, 1/12, 1/13, 1/14, 1/15, 1/16 - Scale Y: 1, 1/2, 1/3, 1/4, 1/5, 1/6, 1/7, 1/8, 1/9, 1/10, 1/11, 1/12, 1/13, 1/14, 1/15, 1/16 2.17 MimShift: - 8bits, 16bits, 32bits buffers - Maximum Shift Value 31 2.18 MimThick: - 8bits, 16bits with mode M_GRAYSCALE - 1bit with mode M_BINARY - Source type must be the same as destination type. 2.19 MimThin: - 8bits, 16bits with mode M_GRAYSCALE - 1bit with mode M_BINARY - Source type must be the same as destination type.