------------------------------------------------------------------------------- Matrox Imaging Library (8.0) HeliosPA.txt Readme File May 4th, 2005 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 Odyssey 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 - Source and destination must be of the same size bit. - 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: - 1bit, 8bits, 16bits, 32bits buffers - Mix of 1 and 32 bit buffer is not supported. - 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: - 1bit, 8bits, 16bits, 32bits buffers - Mix of 1 and 32 bit buffer is not supported. - No M_SATURATION M_CONST_SUB - 1bit, 8bits, 16bits, 32bits buffers - Mix of 1 and 32 bit buffer is not supported. - 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: - 1bit, 8bits, 16bits, 32bits buffers - Mix of 1 and 32 bit buffer is not supported. M_AND_CONST: M_NAND_CONST: M_OR_CONST: M_XOR_CONST: M_NOR_CONST: M_XNOR_CONST: M_NEG: M_ABS: - 1bit, 8bits, 16bits, 32bits buffers M_DIV_CONST: - 1bit, 8bits, 16bits, 32bits buffers - Mix of 1 and 32 bit buffer is not supported. - When source and destination buffers are unsigned 32 bits, negative constant is not supported. M_CONST_DIV: - 1bit, 8bits, 16bits, 32bits buffers - Mix of 1 and 32 bit buffer is not supported. - Source buffer must be unsigned when destinatination buffer is unsigned 32 bits. - When source buffer is unsigned 32 bits, destination buffer must be 32 bits (signed or unsigned). M_DIV: - Sources must be same sign - 1bit, 8bits, 16bits, 32bits buffers - Mix of 1 and 32 bit buffer is not supported. M_DIV+M_FIXED_POINT: - NOT SUPPORTED M_MIN: M_MIN_CONST: M_MAX: M_MAX_CONST: - 1bit, 8bits, 16bits, 32bits buffers - Mix of 1 and 32 bit buffer is not supported. M_DIV_CONST+M_FIXED_POINT: M_CONST_DIV+M_FIXED_POINT: - NOT SUPPORTED 2.1 MimArithMultiple: M_OFFSET_GAIN: - 8bits or 16bits source buffers. - Source buffers Src1, Src3 must be unsigned (Src2 can be signed or not). - Source Size bit smaller or equal Destination Size bit - All sources of same size bit - Destination buffer 8bits, 16bits, 32bits UNSIGNED M_WEIGHTED_AVERAGE: - Source and destination buffers must be UNISGNED. - 8bits, or 16bits sources buffers - Source Size bit smaller or equal Destination Size bit - All sources of same size bit - Destination buffer 8-bit, 16bit and 32-bit 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 (YUYV) , destination RGB24 planar M_RGB_TO_YUV16: - Source RGB24 planar, destination YUV16 packed (YUYV) M_RGB_TO_L: M_L_TO_RGB: M_RGB_TO_Y: - Only 8-bit buffers M_RGB_TO_HSL: M_HSL_TO_RGB: M_RGB_TO_H : - only 8-bit buffers. 2.6 MimConvolve: Custom Kernel: - 8bits, 16bits source and kernel buffers - 8bits, 16bits, 32 bits destination buffer - Max number of kernel elements is 2048 for 8bits source, and 1024 for 16bits source 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 be 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: - 1bit, 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 (Helios Only) : - 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 (Helios only) : - 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 (can be 32 bit on the Odyssey). - 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 <== Not supported on the Odyssey 11 => 8 8 2048 <== Not supported on the Odyssey 11 => 16 16 2048 <== Not supported on the Odyssey 12 => 8 8 4096 <== Not supported on the Odyssey 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 MimProject: - ProjAngle = 0 (vertical projection only). - 8bits and 16bits source buffer - 1bit buffer is supported. - 16bits and 32bits destination buffer. 2.16 MimRank: - 1bit, 8bits, 16bits source buffer - M_3x3_CROSS only with 16bits source buffer - 8bits, 16 bits destination buffer - Rank M_MEDIAN only 2.17 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=1 to 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 (Helios only): - 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/n where n=1 to 16 - Scale Y: 1/n where n=1 to 16 2.16.3 Source M_OFF_BOARD, Destination M_ON_BOARD (Helios only): - 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/n where n=1 to 16 - Scale Y: 1/n where n=1 to 16 2.18 MimShift: - 8bits, 16bits, 32bits buffers - Maximum Shift Value 31 2.19 MimStat : - 1bit, 8bits, 16 bits, 32bits buffers - Statistics : M_MIN, M_MAX, M_MIN+M_MAX, M_MIN_ABS, M_MAX_ABS, M_NUMBER M_MIN_ABS+ M_MAX_ABS, M_SUM, M_SUM_ABS, M_MEAN, M_SUM_SQAURED, M_STANDARD_DEVIATION - Conditions : M_IN_RANGE, M_OUT_RANGE, M_EQUAL, M_NOT_EQUAL, M_GREATER, M_GREATER_OR_EQUAL, M_LESS, M_LESS_OR_EQUAL, M_MASK, M_NULL. 2.20 MimThick: - 8bits, 16bits with mode M_GRAYSCALE - 1bit with mode M_BINARY - Source type must be the same as destination type. 2.21 MimThin: - 8bits, 16bits with mode M_GRAYSCALE - 1bit with mode M_BINARY - Source type must be the same as destination type. 2.22 MimTranslate: - 1bit, 8bits, 16bits, 32bits for integer displacement in X and Y - 8bits, 16bits : otherwise.