Programming Library for PIXCI ® Frame Grabbers
- Quick & Easy Access to PIXCI® Frame Grabbers.
- For 32 bit applications on Windows 10 and earlier (i386, x86-64).
- For 64 bit applications on Windows 11 and earlier (x86-64).
- For 32 bit applications on Linux (i386, ARM-A15).
- For 64 bit applications on Linux (x86-64, ARM-A57).
- For DOS 32 bit Programs (i386).
- High level functions eliminate register level programming;
“thin” design provides efficiency and video field/frame level control. - Flexible video configuration:
- Camera Link formats.
- Analog & digital video interfaces.
- Digital LVDS / TTL camera formats.
- RS-170, NTSC, CCIR, PAL & S-Video formats.
- RS-343 formats.
- High resolution interlace & progressive scan formats.
- Monochrome, composite color & component color formats.
- Custom area-scan & line-scan formats.
- Efficient, video-rate, capture modes:
- Single image snap.
- Continuous live capture.
- Dual buffer “ping-pong ” capture.
- Multi-buffer FIFO (circular queue) capture.
- Image sequence capture.
- Triggered image capture.
- Enqueue-capture-dequeue frame buffer capture.
- Time stamp of image capture.
- Simple or real-time image data access modes:
- Copy image to application array.
- Save image as file.
- Shared access to DMA/frame buffer. 2
- See partial image – as data streams from camera.
- Low Latency “Glass-to-Glass”
- Image display on SVGA/HDMI.
PRODUCT DETAILS
PIXCI® IMAGING POWER
The XCLIB Library empowers C/C++ and Windows, Linux, and DOS programmers to build applications using the PIXCI® series of frame grabbers and frame generators.
XCLIB supports all versions and options of the PIXCI® frame grabbers: 1
- The PIXCI® D † , D24 † , D32 † , D2X, D3X, and D3XE for digital output (LVDS or TTL) area-scan and line-scan cameras with 8, 10, 12, 14, and other bit depths, in monochrome or color.
- The PIXCI® D2X or D2X1 for use with SILICON VIDEO® 2112 † , 2112C † , 1310 † , 1310C † , 1281M, and 1281C cameras.
- The PIXCI® SI, SI1, SI2, or SI4 for use with SILICON VIDEO® 10C6, 10M6, 5C10, 5M10, 9C10, 9M001, 9M001C † , 9T001C, HAS21, WGA-C and WGA-M cameras.
- The PIXCI® SI for use with SILICON VIDEO® 1C45, 1M45, 643M, 643C, and 15C5 cameras.
- The PIXCI® SI1, SI2, or SI4 for use with SILICON VIDEO® 643M and 643C cameras.
- The PIXCI® ELS2 for use with SILICON VIDEO® 022M cameras.
- The PIXCI® E8CAM for use with SILICON VIDEO®
2KS-C and 2KS-M
cameras. - The PIXCI® E1, E1DB, E4, E4DB, E4G2-2F, E4G2-4B, E4G2-F2B, E4TX2-2F, E4TX2-4B, E4TX2-F2B, E8, E8DB, e104x4-2f, e104x4-4b, e104x4-f2b, EB1, EB1G2, EB1-PoCL, EB1G2-PoCL, EB1mini, miniH2B, miniH2F, miniH2x4F, mf2280, EC1, ECB1, ECB1-34, ECB2, EL1, and EL1DB, for use with SILICON VIDEO® 10C-CL, 10M-CL, 20C-CL, 20M-CL, 1514CL, and 1820CL cameras.
- The PIXCI® CL1, CL2, CL3SD, E1, E1DB, E4, E4DB, E4G2-2F, E4G2-4B, E4G2-F2B, E4TX2-2F, E4TX2-4B, E4TX2-F2B, E8, E8DB, e104x4-2f, e104x4-4b, e104x4-f2b, EB1, EB1G2, EB1-PoCL, EB1G2-PoCL, EB1mini, miniH2B, miniH2F, miniH2x4F, mf2280, EC1, ECB1, ECB1-34, ECB2, EL1, and EL1DB, for Camera Link area-scan and line-scan cameras.
- The PIXCI® A † for analog output, monochrome, area-scan and line-scan cameras.
- The PIXCI® A110 for analog output area-scan cameras and other video sources, in monochrome.
- The PIXCI® A310 for analog output area-scan cameras, VGA, SVGA, SXGA, XGA and other video sources,
in monochrome or RGB component color. - The PIXCI® SV2 † , SV3 † , SV4 † , SV5, SV5A, SV5B, SV5L, SV7, and SV8 for NTSC, PAL, RS-170, and CCIR.
- The PIXCI® SV2 † , SV3 † , SV4 † , SV5, SV5L, and SV8 for S-Video.
XCLIB supports all versions and options of the PIXCI® frame generators: 1
- The PIXCI® EB1tg and EB1miniTg for Camera Link area-scan and line-scan video.
Multiple PIXCI® Frame Grabbers can be operated selectively or simultaneously, allowing parallel control for multi-camera vision of a single event or object, or selective control for capturing multiple, independent, events or objects.
Through the unique flexibility of XCLIB and the PIXCI® frame grabbers, single frames or video sequences from standard RS-170, NTSC, PAL, or CCIR, from Camera Link, from LVDS/TTL, or from other nonstandard video sources can be captured, analyzed 3 , displayed, and archived 4 .
Or, with XCLIB and the PIXCI® frame generators, single frames or video sequences of Camera Link video can be created.
CONVENIENCE & COMPATIBILITY
XCLIB provides high level services, allowing concentration on the imaging application, rather than focusing on board level programming.
XCLIB automatically detects and manages all versions of the PIXCI® frame grabbers. Fundamental services, such as setting resolution, capturing, and accessing image data, are the same regardless of camera or version of frame grabber. Fundamental services are also consistent between frame grabbers and frame generators.
The XCLIB C/C++ libraries allows embedding control of PIXCI® frame grabbers or frame generators into user-written applications. Under Windows, the XCLIB DLL also enables access from third party applications, such as Visual Basic, VB.NET, C#.NET, Delphi, Java, LabView, Matlab, Python, and many others, supporting “calling” into DLLs. Under Linux, the XCLIB Shared Object (SO) also enables access from third party applications, such as LabView, Matlab, Python, Java, and many others supporting “calling” into Shared Objects (SO).
SOPHISTICATED SOLUTIONS
XCLIB allows user-written programs to apply the PIXCI® frame grabbers to applications such as image enhancement, archival, analysis and measurement; event and motion study; document capture; cine-loop and ultrasound image capture; particle analysis; visual inspection; machine vision and quality control. Join the scientists and engineers in medical, industrial, and research environments who rely upon EPIX® imaging solutions.
FEATURES
Flexible Video Formats –
Capture standard monochrome RS-170 and CCIR formats, composite color NTSC and PAL formats, color S-VIDEO formats, component color formats, as well as other nonstandard video formats.
Flexible Video Modes –
Set the number of pixels per line, subsampling of pixels in the line, lines per field, and subsampling of lines within the field. Capture interlaced video as a single interlaced image; as two images, one per field; or as a single image of the odd or even field. Supports video rate selection of capture image buffers.
Tradeoff capture resolution against number of frame buffers. With 4 GiByte image memory, for example, resolution of 720×480 24 bit RGB yields (approx.) 4140 frame buffers, 1024×1024 16 bit monochrome yields 2048 frame buffers, and 2048×2048 8 bit Bayer yields 1024 frame buffers.
Extended Features –
Built-in functions provide easy import and export of images in lossless TIFF and BMP file formats.
Under Windows: Built-in services provide display of captured or modified images on the SVGA/HDMI, in all or part of, one or more windows.
Image Access –
Read and write frame buffers with efficient block read and write. Read and write pixels sequentially within area of interest; implicit handling of AOI boundaries or line interlacing. Direct access to image in shared DMA memory (frame buffers) via pointer. 2
For color cameras, access pixels as grey levels, RGB, or HSB (Hue, Saturation, Brightness), regardless of the camera’s or PIXCI® frame grabber’s native color space. Pixels may also be accessed in the board’s native color space (YCrCb for the PIXCI® SV2, SV3, SV4, SV5, SV5A, SV5B, SV5L, SV7, SV8), or the camera’s native color space (such as raw Bayer data for Bayer output color cameras).
Access image data in real time as it arrives from camera – line by line or pixel by pixel (subject to PCI/PCIe bus latency and bus data width).
Camera & Device Control –
Sense general purpose input signals, control general purpose output signals. For Camera Link frame grabbers and frame generators, transmit and receive serial configuration data.
Video Capture Modes –
Capture single image. Capture sequences of images at video rate, or sub-video rate. Capture images in response to external trigger. Capture at video rate into alternate buffers “Ping-Pong”, allowing analysis of one buffer while capturing into the other. Capture at video rate into a circular queue (FIFO) of buffers, allowing image analysis or “video to disk” I/O to lag behind video capture. Capture list of buffers enqueued and dequeued by application. 7
Capture engine operates in background – via DMA & IRQ – for efficiency and low CPU overhead. Captured image data isn’t copied, moved, or processed – until requested by application.
Provides elapsed field/frame count, time of last capture, field/frame count of last capture. Field/Frame capture is time stamped during hardware interrupt handling for minimal latency and maximum accuracy.
Provides application notification via Events, Signals, or Callbacks of each field/frame.
Easy Programming –
All basic features are available via Simple C Functions (SCF); easy to use subroutines don’t require familiarity with “C” structures, pointers, etc. An example source program demonstrates use of SCF subroutines. Additionally, an extended “structured” and “object oriented” interface provides complete control of video formats, resolutions, features and options.
High Level Services –
Image frame buffer access provides pixel data, interlaced if appropriate, in correct “optical order”, and independent of the camera’s internal scanning or multi-channel configuration.
XCLIB services support “no-wait” and “check for completion” modes. During frame capture the host computer’s CPU is not busy transferring pixel data nor waiting for the next vertical blanking interval, but can proceed with concurrent processing.
Sequence Capture –
Capture sequences of images at video rate, or sub-video rate, to the extent of available host computer memory. Under Windows and Linux a “Forceful Allocation” technique allows reserving almost all of computer memory (up to 4 GiByte on 32 bit machines) for image frame buffers, excepting the memory required by the O.S. and BIOS.
Direct Live Video –
For the PIXCI® SV2, SV3, SV4, SV5, SV5A, SV5B, SV5L, SV7, SV8: With a suitable VGA/HDMI card and Windows DirectDraw support, built-in services allow displaying live video with overlays, transferring pixel data directly to the S/VGA in all or part of a window, 8 without the programmer using the DirectDraw API/SDK.
Image Processing & Analysis –
The optional PXIPL Image Processing and Analysis Library , provides a wide selection of pre-written imaging routines.
The major categories include: processing, enhancements, graphic lines and shapes, text overlay, printing, morphology, filters and edge detectors, transforms, convolutions, sequence integration and averaging, image printing, image copy and resizing, single image and image pair normalizations, blob analysis, histograms and moments, image load and save, calibration, correlation, subpixel accuracy measurements, particle tracking, and image load/save with additional file formats.
PXIPL simplifies development of user-written programs in applications such as image enhancement, archival, analysis, and measurement; event and motion study; document capture; particle analysis; visual inspection; machine vision and quality control.
The PXIPL functions are not restricted to processing images which were captured by EPIX® frame grabbers. Images from any source, residing in PC memory, can be any size and any number of colors, limited only by availability of PC memory, and the CPU word size. 9
Typical PXIPL functions provide a broad spectrum of operations, allowing a single function to do the work of many functions. For example, a convolution function accepts parameters describing the image buffer, the area of interest within the buffer, the convolution size N, and the N× N kernel coefficients. This single function allows convolving with a 3×3, 9×9, 31×31, or 99×99 kernel size, limited only by available PC memory.
XCLIB-Lite Version –
XCLIB is available in a reduced, economical, version with limited features – sufficient to support many, common, applications.
XCLIB-Lite may be used with multiple PIXCI® frame grabbers or frame generators, but allows selecting and operating only one frame grabber at a time. For PIXCI® E1DB, E4DB, E4G2-2F, E4TX2-2F, E8DB, e104x4-2f, miniH2B, E8CAM, ECB2, EL1DB, ELS2, SI2, or SV7 frame grabbers, or for PIXCI® E4G2-F2B, E4TX2-F2B, or e104x4-f2b frame grabbers, or for PIXCI® E4G2-4B, E4TX2-$B, e104x4-4b or SI4 frame grabbers, XCLIB-Lite allows operating only one functional half, or quarter, respectively, of a selected frame grabber.
XCLIB-Lite provides the same Simple C Functions (SCF) for snapping images, capturing sequences, and dual buffer (ping-pong) capture, and for reading and writing single or blocks of pixel values in RGB or monochrome; but does not provide the “structured” interface, bit depth conversions, optional color space conversions to HSB and YUV/YCrCb, nor allow reading or writing only a single color component of RGB. For Bayer pattern cameras, XCLIB-Lite does provide the same de-mosaicked, color corrected, white balanced, and gamma corrected ready-to-use RGB pixel data as XCLIB, but does not provide access to raw Bayer data.
XCLIB-Lite does not allow using more than 64 MiBytes of frame buffer memory, and does not provide direct (i.e. “pointer”) access to frame buffers. XCLIB-Lite can’t be used with the PXIPL Image Processing and Analysis Library.
For the PIXCI® A, D, D24, D2X, D3X, D3XE, CL1, CL2, CL3SD, E1, E1DB, E4, E4DB, E4G2-2F, E4G2-4B, E4G2-F2B, E4TX2-2F, E4TX2-4B, E4TX2-F2B, E8, E8DB, e104x4-2f, e104x4-4b, e104x4-f2b, EB1, EB1G2, EB1-PoCL, EB1G2-PoCL, EB1mini, miniH2B, miniH2F, miniH2x4F, mf2280, EC1, ECB1, ECB1-34, ECB2, EL1, and EL1DB, frame grabbers when used with a camera in other than free-run mode, XCLIB-Lite allows importing a video setup file specifying the exposure, frame/line period, (i.e. the so-called “PRIN(C)” and “EXSYNC”), and other camera control parameters but does not provide for altering these frame grabber parameters via function calls. However, for SILICON VIDEO® cameras XCLIB-Lite provides the same camera specific (SCF) functions and features as XCLIB.
XCLIB-Lite allows use of a video setup configuration file, but does not allow the file to be compiled into the application. XCLIB-Lite provides a subset of XCLIB’s functions; programs written using XCLIB-Lite are upward compatible with XCLIB.
SPECIFICATIONS
IMAGING BOARD:
Any PIXCI® series frame grabber.
Up to eight (under 32 bit O.S.) or sixteen (under 64 bit O.S.) identical, or four non-identical, PIXCI® frame grabbers or generators can be controlled. 10
ENVIRONMENT:
- Watcom C/C++ V11.0 32 bit in F model. For Tenberry (Rational) DOS extender, 80386 or better.
- Windows 95, 98, ME – 32 bit DLL, for any compiler or Windows application.
- Windows NT (V4.0), 2000, XP, Vista, 7, 8, 10 32-Bit – 32 bit DLL, for any compiler or Windows application.
- Windows XP, Vista, 7, 8, 10, 11 64-Bit – 32 & 64 bit DLLs, for any compiler or Windows application. 11
- Linux (kernel V2.6, V3.x, V4.x, or V5.x) on Intel i386.
- Linux (kernel V2.6, V3.x, V4.x, or V5.x) on Intel x86-64.
- Linux (kernel V3.x, V4.x, or V5.x) on nVidia TK1 ARM/Cortex-A15.
- Linux (kernel V4.x, or V5.x) on Boundary Devices NITROGEN6 ARM/imx6.
- Linux (kernel V3.x, V4.x, or V5.x) on nVidia TX1/TX2 ARM/Cortex-A57.
- Linux (kernel V4.x or V5.x) on nVidia Nano/Orin/Xavier ARM/Cortex-A57.
XCLIB-Lite only available for Windows & Linux. PIXCI® SV2 and SV3 are not supported under 64 bit systems. PIXCI® frame grabbers using the PCI32 or PCI64 bus are not supported on ARM systems.
Other environments available on request.
LICENSING:
Licensing permits royalty free inclusion of library routines into programs using EPIX® PIXCI® series frame grabbers or frame generators.
SOFTWARE INCLUDES:
As required by environment: Object code libraries (.lib), Dynamic Link Library (.dll), Object code archive (.a), Windows drivers (.vxd or .sys) provided with XCAP software. Linux drivers (.o or .ko, alternately binary-bloob with .c wrappers allowing recompilation on end-user’s chosen kernel) provided with XCAP software.
- C prototype files (.h).
- Example C/C++ programs demonstrating typically used PIXCI® frame grabber features, with Windows (GDI), DOS (stdio), or Linux (stdio & Gnome) interface (.c/.cpp).
- Example Visual Basic, VB.NET, C#.NET, programs. Example Labview VI driver.
- XCLIB function declaration files for Visual Basic, VB.NET, C#.NET, LabView, Matlab.
- HTML manual.