Support Support Home » Knowledge Base » Transport Data Packing

Transport Data Packing

This feature enables bit packing on transport data layer - USB3, USB 2.0, PCIe, Thunderbolt.
Transport data packing removes unused zero bits which might increase the maximum frame rate.

Cameras supporting this feature

List of camera families supporting the Transport Data Packing:

camera families
xiMU
xiQ except of models: MQ013xG-E2
xiC
xiB
xiT
xiX

Example: Without data packing each 10 bit pixel is transported in two bytes (16bits).
When Transport Data Packing is enabled the bits from multiple pixels are grouped in multiple bytes.
On xiQ cameras: 16 pixels x 10 bits = 160 bits are grouped in 20 bytes.
This uses only 60% of the unpacked data amount (160 bits instead of 256bits).

Example of Frame Rate Increase with enabled packing

Camera model MQ022xG-CM MQ022XG-CM
Packing enabled disabled
Measured FPS 133.9 84.6

Camera model MQ042xG-CM MQ042XG-CM
Packing enabled disabled
Measured FPS 71.4 45.1

  • Tested using XI_RAW16 image format (16bit) at full resolution
  • Tested on PC
    • CPU: Intel Core i5-3570K 3.40Ghz
    • USB3 controller: Z77

Feature parameters

xiApi parameters

Feature related parameters
XI_PRM_IMAGE_DATA_FORMAT = XI_RAW16
XI_PRM_OUTPUT_DATA_BIT_DEPTH = 10
XI_PRM_OUTPUT_DATA_PACKING = 1

NOTE: Order of parameters setting is mandatory

Sample code

// set trigger source
// set API image data format
xiSetParamInt(h,XI_PRM_IMAGE_DATA_FORMAT, XI_RAW16);
// set 10 bit transport data width
xiSetParamInt(h,XI_PRM_OUTPUT_DATA_BIT_DEPTH, 10);
// enable packing
xiSetParamInt(h,XI_PRM_OUTPUT_DATA_PACKING, XI_ON);
// start acquisition
xiStartAcquisition(h);