GenICam and CV GenAPI

<< Click to Display Table of Contents >>

Navigation:  Image Manager > CVB Technology >

GenICam and CV GenAPI

 

GenICam™ is an extremely general hardware/software interface description which defines cameras in terms of their specific features.

One feature, for example, might be the possibility of modifying the amplification (gain) of the analog sensor signal.

All cameras must possess 7 fixed standard features without which image capture is not possible.

 

These are:

Width, the width of the image

Height, the height of the image

Pixelformat, the format of pixels, e.g. 8-bit monochrome

PayloadSize, the number of bytes for a complete image

AcquisitionMode, the capture mode, e.g. triggered capture

AcquisitionStart, start image capture

AcquisitionStop, terminates image capture

GeniCami DLL

 

In addition to these, GenICam™ defines a large number of standard names and notations for frequently used features.

Camera manufacturers may of course define their own proprietary features and such specific cameras are also catered for.

The GenICam™ standard simply describes the syntax for an electronic camera manual in the form of an XML file which is read when a GenICam program is run.
This XML file is made available by the camera manufacturer.

GenICam™ provides functions which map this description of features to the camera's actual registers.
The XML file defines the camera features in clear text and establishes a link between the feature and the camera register. As a result, a feature may impact on multiple registers.

Alongside its value, a feature may possess one or more attributes which depend on the value of the feature.

All features have the following attributes:

Name

Tool tip

Display name

Access mode

 

An integer feature, for example, also possesses the following attributes:

Maximum

Minimum

Increment

 

Features can be combined within categories. For example it is possible to combine the image width and height in the image size category.

A category may contain both features and sub-categories. This makes it possible to map a camera's features to a hierarchical tree structure.

Moreover, it is easy to link features to application controls, for example an integer with a scroll bar.

The illustration indicates this type of hierarchical structure and the connection with the registers.

Access to the XML descriptions and the underlying registers is performed via the CV Gen API.

This means that the CV Gen API register access is performed only at the logical level with physical access being performed via the so called "transport layer".

This is responsible for the actual data transfer to the camera and implements a protocol defined for any given hardware standard for communication with the connected devices.

Depending on the transport medium employed (e.g. Gigabit Ethernet), the GenAPI may use a software interface defined in the transport layer.

The transport layer also defines interfaces for image capture and the streaming of image data. This makes it possible to support a wide variety of bus systems without any major adaptations to the system being required on system change. It is also possible to configure the transport layer via XML file and the CV Gen API.

The connection between the transport layer and the GenAPI is set up via a so-called "factory".

The factory administers all the installed transport layers and associated camera and uses this information to generate the GenAPI instances for the connected cameras.

The factory is configured by means of the XML file and the GenAPI in the same way as the transport layer and the camera.

 

Following figure illustrates the relationship between the camera, transport layer, factory, the GenAPI and the application.

GenICam therefore consists of the following three modules which all have counterparts in the CVB implementation:

 

GenAPI

Factory

Transport Layer

 

The GenAPI is part of the GenICam™ standard whereas the transport layer is typically provided by the camera or software vendor. The XML files are provided by the relevant vendor.

At runtime, it may be necessary to modify individual camera features or present these to the end user.

This can be achieved, on the one hand, using the CV Gen API functions for accessing the CVB GenICam interface and, on the other, the Common Vision GenAPI Grid Control. This ActiveX control can be integrated in users' own applications and makes it possible to display and edit the camera features.

GeniCami DLL

 

Find more information about GenICam, use cases and examples in the CVB User Guide fir the GenICam Driver.