Common Vision Blox

CVB on ARM and Linux

Common Vision Blox supports Windows, Linux on x86 and x64 architecture processors and also Linux on ARM 7 (32bit) and aarch64 (64bit) processors. CameraSuite functionality, Image Manager and a selection of tools are available on Linux platforms.

What is supported under Linux?

Under Linux, the functionality is the same regardless of ARM or Intel architectures. The following are supported:

CameraSuite/ Image Manager

  • Set of interfaces for all main features of an image acquisition device such as grab, trigger, software trigger, ringbuffer, digital IO, linescan and much more
  • GenICam interface for control of a GenICam compliant device
  • Advanced support for line scan cameras with the Linescan interface
  • Control of the image acquisition devices digital I/O ports
  • Ringbuffer operation for maximum throughput
  • Easy integration of multiple asynchronous acquisition devices
  • Multithread acquisition with asynchronous events for processing
  • EMUlator as IGrabber interface to be used as an emulation of image acquisition for testing purposes

The difference between CameraSuite and Image Manager is that:

  • CameraSuite is licensed by a GigE Vision or USB3 Vision camera purchased from STEMMER IMAGING (at no cost), but cannot have tools added.
  • Image Manager is licensed by a hardware dongle or ‘node-lock’ licence and can have tools added.

CVB Tools

  • Minos – a high-speed OCR/OCV or object recognition tool
  • Shapefinder – a geometric pattern recognition tool capable of dealing with changes to illumination, scale, rotation and occlusion
  • GigE Vision Server – a ‘software’ GigE vision camera allowing redistribution of images over a network, distributed processing or camera emulation.

Other tools and functionality will be added in the future – if you don’t see what you need, please contact us.  

What is ARM?

ARM 7 is a 32b microcontroller architecture from British company ARM Holdings, ARMv8a extends the capability to 64b for the first time. ARM architectures are licensed to other companies who typically add other components such as memory and interfaces to create a System on a Chip (SoC). ARM architectures are RISC (Reduced Instruction Set Computing), allowing them to be smaller, low-power and produce less heat than a typical CISC (Complex Instruction Set Computing) architecture like Intel and AMD’s x86 and x64 processors.

The systems that are created from ARM designs can include GPU, FPGA, USB3 and GigE on the chip.

Why Choose ARM SoC?

  • Attractive runtime pricing
  • Easy maintenance
  • Simple deployment
  • Low power consumption, often fanless
  • Small and light weight
  • GigE/USB3 available
  • Often include GPIO

Why Not Choose ARM SoC?

  • C/C++ only, .NET is a Windows technology
  • Not a Windows platform. Maybe less familiar
  • Much smaller range of hardware available
  • Initial costs are typically higher the Windows

What ARM devices does CVB support?

CVB supports ARM7 and ARMv8a-based SoCs. There are standard Debian installation packages and also ISO disk images for some of the popular systems to make it even easier to get up and running. Licensing is the same as for Windows-based CVB: dongles, node-locked licences or CameraSuite licensing (where a licence is locked to a GigE Vision or USB3 Vision camera purchased from STEMMER Imaging). Ubuntu versions 12.04 and 16.04 are supported.

Sample platforms:

  • ARM Linux (32b) setup for Ubuntu. Example systems include:
    • NVIDIA Tegra K1 (2.3GHz quad core A15 plus Kepler GPU with 192 CUDA cores)
    • Samsung Exynos 5422 (2.1GHz quad core A15 and a 1.5GHz A7 processor)
    • TI Keystone (1.5GHz quad core A15 plus upto 8 C66x DSPs)
  • ARMv8A architecture supports 64b SoCs, such as:
    • Samsung Exynos5433 (1.9 GHz quad-core A57 and quad-core A53 plus Mali-T760 GPU)
    • Snapdragon 810 (2.0GHz quad-core A57 and quad-core A53 plus Adreno 430 GPU)
    • Nvidia Tegra X1 (1.9GHz quad-core A57 and quad-core A53 plus 256 core Maxwell GPU)
  • Odroid XU4 - this incorporates a Samsung Exynos 5422 SoC and incorporates RAM, flash storage, USB3, GigE and HDMI in a credit card-sized package. An ISO disk image is available from the CVB download page.
  • Altera Cyclone V– this is a powerful FPGA that incorporates a dual-core ARM Cortex A9 processor running the Yocto lightweight embedded OS. An ISO disk image is available from the CVB download page. This platform is interesting as it also makes the FPGA available for applications. One example that this has already been used for is to use the CVB tool GigE Vision Server to create a GigE Vision output image stream. This might be useful for OEMs to turn a non-GigE Vision camera into a GigE Vision device. The platforms with an ISO disk image are a useful way to quickly prove an application on an embedded platform. However, further platforms are always possible, please contact STEMMER Imaging.

Cross-platform development

It is not unusual to think of developing on a Linux machine to deploy on an embedded Linux system, but it is possible to develop under Windows and create genuine cross-platform applications. The only real restrictions are that C or C++ is necessary and to use QT for the GUI, if required.