Fast VCR software for XIMEA cameras

XIMEA company is a well-known camera manufacturer with great achievements. The company offers super compact and high quality products with various resolutions, frame rates, bandwidths, USB3 and PCIe interfaces, spectral sensitivities, image sensors, and hardware platforms. XIMEA cameras could be supplied with high performance PCI-Express interface which significantly improves the bandwidth and enables reatime applications for high resolution and high fps cameras.

Fast VCR Software

You can test any XIMEA camera with their CamTool software, but it's intended just for camera testing or for low fps applications. To overcome that limitation we've developed a GPU-based software to work with XIMEA cameras to allow maximum performance and the highest image quality at realtime. You can download that software from that link and test it with available XIMEA cameras (8/10/12-bit monochrome or bayer).

Why do we need high performance software for XIMEA cameras?

If we have a look at the latest SONY Pregius image sensors of the 4th generation, most of them have "high speed" version which means that these image sensors have not only high resolution, but also high frame rate, which is doubled in comparison with the second generation on SONY image sensors. XIMEA cameras with these image sensors are supplied with high speed USB3 or PCIe interfaces, so they have capabilities to capture acquired frames at the maximum bandwidth.

That's true not only for SONY image sensors, the situation is the same with Gpixel and AMS (CMOSIS) as well. Modern machine vision cameras offer both high resolution and high fps, so it's quite a complicated task to perform real time processing with high quality and without dropped frames. That is exactly what we can do with FastVCR software which is running on NVIDIA GPU (mobile/laptop/desktop/server). In our pipeline we've included high quality demosaicing together with other image processing modules to take into account color science and high performance requirements.

Machine vision cameras capture high quality images at realtime, so they are utilized in industrial applications, streaming and broadcasting, digital cinema, 3D, AR and VR.

XIMEA cameras

xiC and xiX camera series

The xiC is an extremely diversified and highly modular camera family designed for the Sony Pregius™ image sensor series. It offers multiple choices of combining sensors and interfaces. Even though it is a board stack, for system integrators it has all the benefits of a single board design and is incredibly small.

The xiX cameras are based on the same board-level concept and can stream images to the host computer via 2 lanes on a PCI Express Gen2 bus. Together with minimal latencies and CPU load, the cameras are a perfect fit for embedded vision and multi-camera applications. Thanks to flat flex cabling, the board-level and semi-housed variants allow integration in tight spaces and close proximity between cameras.

Fast VCR software for XIMEA camera control

  • Camera initialization (camera model, default values for frame resolution, fps, etc.)
  • Input bit depth and pixel format
  • Image resolution and region of interest (ROI)
  • Frame rate (FPS)
  • Exposure time
  • Gain
  • Camera bandwidth
  • Automatic exposure/gain control with "remove overexposure" feature
  • Software presets for fast change of image sensor parameters
  • Optional modes: binning, decimation, dual gain, dual adc, etc.

Fast VCR software: image processing pipeline on GPU

  • Image acquisition
  • Frame unpacking for 10-bit and 12-bit modes
  • Image linearization
  • Dark frame subtraction (FPN)
  • Flat-Field Correction (shading correction)
  • Bad pixel removal
  • White Balance / AWB
  • Adaptive Exposure and Gain control
  • High quality demosaicing with MG algorithm
  • Color correction with matrix profile or DCP profile
  • Highlight recovery
  • Exposure correction (brightness control)
  • Denoiser: wavelet-based, Bilateral, NLM
  • Curves and Levels
  • Rotation to 90/180/270 degrees and flip/flop
  • Crop
  • Resize (downscale and upscale)
  • Rotation to an arbitrary angle
  • Undistortion via LCP or via calibrated maps
  • Sharpening (local contrast)
  • Gamma transform
  • JPEG compression and storage on SSD
  • Optional conversion to NV12 and h264/h265/av1 encoding
  • Automatic realtime partitioning of AVI/MP4 video files to the specified file size
  • Built-in RTSP server for low latency video streaming and broadcasting
  • Realtime output to monitor

Fast VCR software outputs

  • Video output to monitor via OpenGL in real time
  • Camera statistics
  • Histogram, Parade, Vectorscope
  • Realtime processing and JPEG compression with image storage on SSD
  • Video encoding to MJPEG (AVI), H.264/H.265/AV1 (MP4) and storage to video container on SSD
  • Low-latency video streaming via RTSP (both player and server are included)
  • RTSP streaming is compatible with VLC and with our own video player
  • Real time RAW/PGM data storage on SSD
  • Interoperability with third-party GPU-based SDKs
  • Interoperability with GPU-based AI libraries and applications at the GPU level

Fast VCR performance benchmarks

That software was built with the idea of GPU image processing to be capable of working in high performance camera applications. This is exactly what XIMEA is offering for their products with USB3 and PCIe interfaces. For USB3 cameras the software can work with multicamera systems to process raw frames from all cameras in real time without frame drops. Still, the maximum performance could be achieved with PCIe cameras due to their bandwidth. Fast VCR software can process RAW images from 65 MPix camera (9344×7000, 8-bit/70fps or 10-bit/60fps) on the NVIDIA GeForce RTX 4090, the pipeline includes RAW import, RAW-to-RGB transform, color correction, JPEG encoding, storage to SSD. This is just one use case which could show the performance level, which is very high. In general, the performance depends on the complexity of image processing pipeline and utilized hardware (CPU/GPU/SSD, etc). You can download the demo software from the link below to test your XIMEA camera and to evaluate image quality, latency and performance.

That software can also work at camera emulator mode to check image processing performance on GPU without having a camera connected to a PC. User can load arbitrary RAW image in RAW/PGM/TIFF format to work with. This is very useful to check time measurements which are available for each image processing module on GPU.

Optional image processing modules on GPU

  • RAW frames capture, preview and storage to SSD
  • Histograms for raw and processed data
  • Curves and levels for RAW, RGB, HSV
  • DCP support and calibration (CCM, HSV LUT, Tone Curve)
  • 3D LUT support
  • Geometric and affine transforms
  • Undistortion via accelerated remap - in progress
  • Chromatic aberration suppression at RAW domain - in progress
  • LCP support
  • HDR support
  • Local and global tonemapping
  • SDI output support to work with Blackmagic grabbers
  • Multiple camera support
  • Fast replay (synchronized viewer) solution for multicamera systems
  • High performance JPEG2000 and Raw-JPEG codecs
  • Interoperability with FFmpeg
  • Camera and lens calibration: FPN, FFC, DCP, undistortion
  • GenICam (GenTL) support to work with Basler, Imperx, Flir, Lucid, Daheng Imaging, Mindvision, Hikrobot and other cameras
  • Much more...

Fast VCR command-line application

Quite often we need to run a software without any GUI, and it could happen in different situations. This is the case for drone applications or for any other task with remote camera control. This is also the case for any long-term unsupervised video recording and streaming.

To meet these requirements, we've developed a CLI application which has all the above features of FastVCR software and it could work without GUI. We are still able to have full control on image sensor and image processing parameters at real time. For video preview we supply our own player with RTSP client or one can use VLC instead. The software is compatible with Windows/Linux/L4T and all image processing is done on the GPU.

cuda image processing sdk

All the above features are designed on the basis of our CUDA image processing SDK. Now our customers have an opportunity to utilize GPU-accelerated software components in their applications as a part of video processing pipeline. Here you can find other benchmarks for our SDK.

Apart from FastVCR software, we are offering custom software design to build a solution according to customers' requirements. We can implement application-specific modes of operation to solve the task you need. Please fill the contact form below with your project info and send it to us.

Compatibility

  • CUDA-12.3 for Windows/Linux, NVIDIA GeForce, Quadro, Tesla
  • CUDA-11.4 for NVIDIA Jetson NX, AGX Xavier, Orin
  • CUDA-10.2 for NVIDIA Jetson TX2, NX, AGX Xavier
  • XIMEA USB3 and PCIe cameras
  • CUDA processing of 8-16-bit RAW/PGM/TIFF images from SSD

Software downloads

Applications

  • Ophthalmology and retinal surgery, medical imaging
  • Machine vision and industrial applications
  • Media and entertainment
  • Broadcasting and streaming
  • Drones and UAVs
  • 3D scanning and robotic arms
  • Aerial imaging
  • Various AI applications with machine vision cameras

Fast VCR roadmap

  • CLI application with remote control and long-term operation - done
  • Overexposure suppression in automatic exposure/gain control mode - done
  • Support for EVT cameras: 10-GigE, 25-GigE, 50-GigE, 100-GigE - done
  • Software for mipi csi2 cameras with CUDA-based ISP - done
  • NLM denoiser on the GPU - done
  • Bilateral denoiser on the GPU - done
  • High quality color calibration for camera applications - done
  • XIMEA multicamera system - in progress
  • XIMEA camera lens control - in progress
  • XIMEA high speed cameras support - in progress
  • Accelerated GPU kernels to get better performance on Jetson TX2 and NX - in progress
  • Compatibility with YOLO v5-v8 - in progress
  • Lossy RAW compression and decompression in real time - soon

Blog posts on the subject

Contact Form

This form collects your name and email. Check out our Privacy Policy on how we protect and manage your personal data.