HomeSupportAPIsXiAPI → XiAPI Concatenated Images in One Buffer

XiAPI Concatenated Images in One Buffer

Feature

Multiple XIMEA cameras offer the possibility to concatenate multiple images in one buffer.
It allows to decrease the overhead with handling buffers.
This is beneficial, especially at high framerates.
Currently, PCIe cameras (from xiX and xiB lines) provide this feature.

Concept

The basic idea of this functionality is following:

  • Application sets transport format to disable image processing
    XI_PRM_IMAGE_DATA_FORMAT = XI_FRM_TRANSPORT_DATA
  • Application sets the number of images to be concatenated. Here is an example for 10 images:
    XI_PRM_CONCAT_IMG_COUNT = 10
  • Application activates the feature
    XI_PRM_CONCAT_IMG_MODE = XI_ON
  • Application starts acquisition
    StartAcquisition
  • Now, the camera delivers data from 10 successive images into one buffer



  • Application gets those concatenated data
    xiGetImage(&transport_data)
  • Application gets byte distance between the beginning of concatenated images by getting XI_PRM_CONCAT_IMG_TRANSPORT_IMG_OFFSET
  • The application can process single images by
    for(i=0;i<N;i++)
       ProcessImage(transport_data + i*transport_img_offset);
    


Counters

  • XI_CNT_SEL_TRANSPORT_TRANSFERRED_FRAMES is incremented after each image.
    E.g. if N=10, it is incremented by 10 for each buffer.
  • GenTL: BUFFER_INFO_FRAMEID is incremented after each image.
    E.g. if N=10, it is incremented by 10 for each GenTL-buffer.
  • XI_IMG.acq_nframe is incremented after each image.
    E.g. if N=10, it is incremented by 10 each xiGetImage.

Example

Here is the source code - example_concatenation.cpp