------------------------------------------------------------------------------- Matrox Imaging Library (MIL) 10.0 Release Notes (milRadient) December, 2013 (c) Copyright Matrox Electronic Systems Ltd., 1992-2013. ------------------------------------------------------------------------------- This document outlines what is new with MIL for Matrox Radient and explains the current limitations and particularities when using MIL with Matrox Radient. It also presents last minute information that did not make it into the manual or on-line help. Note that this text file serves to complement your manual. The information found in this file overrides your formally documented material. Contents 1. Matrox Radient with MIL. 1.1 What’s new in MIL 10.0. 1.2 What’s new in MIL 9.0 Update 55. 1.2.1 Overview. 1.2.2 API enhancements. 1.2.3 Bug fixes. 1.3 What’s new in MIL 9.0 Update 31. 1.4 What’s new in MIL 9.0 Update 6. 2. Matrox Radient utilities. 3. Limitations and particularities. 4. Processing FPGA documentation. 5. Supported operating systems. 6. Location of examples (in the help file) ------------------------------------------------------------------------------- 1. Matrox Radient with MIL. 1.1 What’s new in MIL 10.0. - Support for Microsoft® Windows® 8. - MIL 10 has a new mechanism to control and inquire IO signals. It has unified some concepts under the M_IO_... constants of MdigControl/MdigInquire and generalized others that were being used for more than their original purpose (for example, M_GRAB_EXPOSURE_... to M_TIMER_...). For the correlation between old and new MIL constants, refer to the MilRadientCameraLinkIOConversionTable release note. 1.2 What’s new in MIL 9.0 Update 55. 1.2.1 Overview. - Added support for GenICam™ for Camera Link® (CLProtocol). Requires third party CLProtocol communication DLL supplied by the camera vendor. - Updated the Intellicam tool to support a Feature Browser for Camera-Link®. - Updated the MilConfig tool to support GenICam™ for Camera Link® default parameters. - Added clprotocol.cpp Radient specific example. Demonstrates the use of GenICam™ for Camera Link® CLProtocol. Enables the use of MdigControlFeature() and MdigInquireFeature() to control camera features (parameters) as well as the feature browser dialog window. - Added support for MdigControlFeature() and MdigInquireFeature(). See MIL documentation for details. 1.2.2 API enhancements. - Additions to MdigControl() - M_GC_CLPROTOCOL: Controls the activation of GenICam™ for Camera Link® CLProtocol. - Values: M_ENABLE: Enables GenICam™ for Camera Link® (CLProtocol). A Device ID template must be specified prior to enabling CLProtocol. See M_GC_CLPROTOCOL_DEVICEID. - M_GC_CLPROTOCOL_DEVICEID: Specifies the GenICam™ for Camera Link® (CLProtocol) device ID template, which must match the camera connected to the Matrox Radient. The installed device IDs can be inquired by calling MdigInquire() with M_GC_CLPROTOCOL_DEVICEID+n. See the clprotocol Radient- specific example for more details. - Values: A MIL_TEXT_PTR string representing the GenICam™ for Camera Link® (CLProtocol) device ID template. - M_GC_FEATURE_BROWSER: Opens the device feature browser dialog from a MIL console application. Supported control values are: - Values: - M_DEFAULT: Opens the feature browser dialog. The calling thread is blocked. - M_OPEN+M_SYNCHRONOUS: same as M_DEFAULT. - M_OPEN+M_ASYNCHRONOUS: Opens the feature browser dialog. The calling thread returns as soon as the feature browser is created. - M_CLOSE: Closes the feature browser dialog. - Additions to MdigInquire() - M_GC_CLPROTOCOL: Returns information regarding activation of GenICam™ for Camera Link® CLProtocol. - Values: M_ENABLE: GenICam™ for Camera Link® CLProtocol is active. M_DISABLE: GenICam™ for Camera Link® CLProtocol is not active. - M_GC_CLPROTOCOL_DEVICEID_NUM: Returns a MIL_INT, representing the number of installed GenICam™ for Camera Link® device ID templates. - M_GC_CLPROTOCOL_DEVICEID_SIZE_MAX: Returns a MIL_INT, representing the maximum string length required to store the device ID templates. - M_GC_CLPROTOCOL_DEVICEID+n: Returns a MIL_TEXT_PTR string, representing the nth GenICam™ for Camera Link® device ID template installed. 1.2.3 Bug fixes. - Fixed issue regarding taps direction with time-multiplexed cameras (r147660). - Added support of 512MB and 1GB flashes (r147775). - Fixed problem caused by the timers that could be reprogrammed at each frame (r147843). - Fixed issue that could lead to a false grab overrun error when our interrupts are delayed (r147914). - Fixed issue with MdigInquire(M_CAMERA_PRESENT) (r151293). - Fixed issue where the internal clock generator could be outside of its valid range of operation (r159620). - Disabled ASPM (active state power management) in the installation (.inf) file (r155491). - Fixed issue where PoCL was not activated on the second connector of a Camera Link® camera (r161810). - Added new firmwares to solve an issue when grabbing from 10, 12 or 14bits cameras. The unused upper bits where not set to 0 (r161987). 1.3 What’s new in MIL 9.0 Update 31. - Improved support of high frame rate cameras. - Added support for hardware-based detection of missed frames. MdigInquire(M_PROCESS_FRAME_MISSED) is now hardware assisted. - Improved interrupt latency reliability. - Added support of System Monitor which monitors board temperature and memory parity errors. A MIL error message will be sent if the board temperature exceeds the limit or if there is a memory parity error. - Added support of M_RGB24 packed on-board buffers. - MimFlip and MimResize (M_NEAREST_NEIGHBOR) between an on-board buffer and a host buffer are now done by the hardware engine. - Improved precision of MdigInquire(M_PROCESS_FRAME_RATE). - Added support of more processing FPGA devices (EP4SE230, EP4SE360, EP4SE530, EP4SE820). - MdigInquire(M_GRAB_EXPOSURE_TRIGGER_MISSED) is now supported on M_TIMER2. - Fixed issue where a grab would not start after reallocating a digitizer on the same device. - Fixed issue with usage monitor where the grab utilization was stuck at 100%. - Fixed a PoCL (PowerOverCameraLink) sensing issue when a PoCL camera is disconnected. 1.4 What’s new in MIL 9.0 Update 6. - MsysControl/MsysInquire(), MdigControl/MdigInquire(): - All control types and inquire types that apply to Matrox Solios eV-CL (and their corresponding board-specific information) also apply to Matrox Radient. For additions and exceptions, see below. - Processing FPGA documentation: - Refer to the FPGA section of the MIL reference for documentation on the Processing FPGA functions. - See the \examples\board-specific\radient\processingfpga example for details. - The default processing FPGA configuration firmware shipped with MIL (MfpgaExampleSLxxxCx.firmware) includes the following processing units: - Bayer processing unit (use the MIL MbufBayer function) - Source buffers must be allocated in an on-board SDRAM memory bank (use the M_FPGA_ACCESSIBLE buffer attribute). Maximum supported buffer width (SizeX) is 4094 pixels. - Destination buffers must be allocated in an on-board SDRAM memory bank or in the host's non-paged memory (use the M_FPGA_ACCESSIBLE+M_HOST_MEMORY buffer attribute to allocate the buffer in the host's non-paged memory). - Source and destination buffers can be 8 or 16 bits. - If the source buffer is 16 bits, use MbufControl with M_MAX on the source buffer to indicate the actual maximum value in the buffer (e.g. if a 10 bit camera is grabbing into a 16 bit buffer, use MbufControl(..., M_MAX, 1023.0) to specify that only the values between 0 and 1023 are to be expected. - The CoefOrExpId parameter must be a 3x1 buffer allocated as a 32+M_FLOAT buffer type with the M_ARRAY attribute. - M_WHITE_BALANCE_CALCULATE is not supported on the FPGA, although pre-calculated coefficients will be applied by the FPGA. - The M_BAYER_BIT_SHIFT() macro is supported. - M_ADAPTIVE and M_AVERAGE_2X2 demosaicing algorithms are not supported. - Offset Gain processing unit(use the MIL MimArithMultiple function with the M_OFFSET_GAIN Operation) - All source buffers must be allocated in an on-board SDRAM memory bank. - Destination buffers must be allocated in an on-board SDRAM memory bank or in the host's non-paged memory. - M_SATURATION is always applied. - LutMap processing unit (use the MIL MimLutMap function) - Source buffers must be allocated in an on-board SDRAM memory bank. - Destination buffers must be allocated in an on-board SDRAM memory bank or in the host's non-paged memory. - LUT buffers must be allocated as an 8 or 16 bit buffer with the M_LUT+M_FPGA_ACCESSIBLE attribute. - LUT buffers can have up to 4096 elements. - Other processing units are available. Contact your Matrox Electronic Systems Ltd. representative for details. Those processing units include, but are not limited to, the following: - LutMap with LUT buffers up to 65536 elements. - MimConvolve (3x3 convolution), MimErode, MimDilate, and MimMorphic. - MimHisogram. - MimWarp. - Additions to MsysAlloc(), System Descriptor parameter: - M_SYSTEM_RADIENT: Allocates a Matrox Radient system. - Additions to MsysInquire(): - M_BOARD_TYPE: - Values: M_RADIENT + M_CL + M_SFCL + M_PF. M_RADIENT + M_CL + M_DFCL + M_PF. M_RADIENT + M_CL + M_DBCL + M_PF. M_RADIENT + M_CL + M_QBCL + M_PF. - M_SYSTEM_DESCRIPTOR: - Value: M_SYSTEM_RADIENT - M_SYSTEM_TYPE: M_SYSTEM_RADIENT_TYPE - M_MEMORY_SIZE: - Returns the amount of on-board memory, in Mbytes. - M_SHARED_MEMORY_SIZE: - Returns the total amount of on-board shared memory, in Mbytes. - M_MEMORY_SIZE_BANK_0: - Returns the total amount of on-board memory in the SDRAM bank, in Mbytes. - M_MEMORY_SIZE_BANK_1: - Returns the total amount of on-board memory in the SRAM bank, in Mbytes. - M_MEMORY_FREE: - Returns the total amount of free on-board memory, in bytes. - M_SHARED_MEMORY_FREE: - Returns the total amount of free on-board shared memory, in bytes. - M_MEMORY_FREE_BANK_0: - Returns the total amount of free on-board memory in the SDRAM bank, in bytes. - M_MEMORY_FREE_BANK_1: - Returns the total amount of free on-board memory in the SRAM bank, in bytes. - M_FIRMWARE_REVISION: - Returns the revision number of the grab firmware (HFPGA). - M_FIRMWARE_BUILDDATE: - Returns the build date of the grab firmware (HFPGA). - M_FIRMWARE_REVISION_PROCESSING: - Returns the revision number of the processing firmware (PFPGA). - M_FIRMWARE_BUILDDATE_PROCESSING: - Returns the build date of the processing firmware (PFPGA). - M_FPGA_TEMPERATURE: - Returns the current temperature in Celsius of the grab FPGA. - Value in MIL_DOUBLE. - M_FPGA_TEMPERATURE_MAX_MEASURED: - Returns the maximum temperature measured in Celsius of the grab FPGA. - Value in MIL_DOUBLE. - M_PROCESSING_FPGA_TEMPERATURE: - Returns the current temperature in Celsius of the processing FPGA. - Value in MIL_DOUBLE. - M_PROCESSING_FPGA_TEMPERATURE_MAX_MEASURED: - Returns the maximum temperature measured in Celsius of the processing FPGA. - Value in MIL_DOUBLE. - Additions to MdigControl/MdigInquire(): - M_CAMERA_POWER: Controls the power sent to PoCL (Power over Camera-Link) cameras. - Values: M_ON Enable PoCL mechanism. M_OFF Disable PoCL mechanism. M_DEFAULT Same as M_ON. 2. Matrox Radient utilities. - There are three Matrox Radient utilities available through MilConfig: (1)Matrox Radient Bench, (2)Usage Meter, and (3) Radient Performance Monitor. - Matrox Radient Bench. The Matrox Radient Bench utility, located in your Matrox Imaging\Tools directory, calculates the real-time transfer speed of the PCIe bus in Mbytes/sec. - Usage Meter. The Usage Meter utility (UsageMeter.exe) indicates in percentages, how much of the grab section and the transfer section is being used. - Radient Performance Monitor. The Radient Performance Monitor is a tool integrated with Windows Performance Monitor (perfmon.exe) and is used to monitor information about the Matrox Radient, such as: - Grab usage. - Transfer usage of each DMA engine. - Memory size of each memory bank. - Memory utilization of each memory bank. - Current and maximum temperatures of the grab and processing FPGAs. - Utilization of each processing unit present in the processing FPGA. 3. Limitations and particularities. - MdigLut() is not supported. - The following Time Multiplex configurations are not supported on the Dual- Base version of the Radient: - 4 taps 10/12 bits configured in 2 region of 2 taps adjacent. - RGB 2 taps. 4. Processing FPGA documentation. - This documentation is available in the MILHelp.chm. There is a User Guide part ("Using MIL with a Processing FPGA") and a Reference part ("fpga"). 5. Supported operating systems. This section lists all the supported operating systems. - 32-bit Windows® XP - 32-bit Windows® 7 - 64-bit Windows® 7 - 32-bit Windows® 8 - 64-bit Windows® 8 - 32-bit Linux® - 64-bit Linux® 6. Location of examples (in the help file) - In the help file, the location information written at the top of examples might not be up-to-date. Use MIL Example Launcher to find an example on disk.