https://www.ximea.com/support/wiki/allprod/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);