Basler Vision Connector Messaging: Image Format#
This message format is prepared to support the streaming of multiple cameras.
The following image format namespaces are supported via this communication channel:
Message Envelope for ZeroMQ Messages on the Pub/Sub Channel#
| Frame | Field | Description | Type |
|---|---|---|---|
| 1 | topic | Device identification | Binary string (UTF-8) to identify the device in the following syntax: device/{DeviceID}/stream |
| 2 | metadata | Metadata | Binary metadata JSON (UTF-8) |
| 3 | image | Image 1 | Binary |
| 4 … n | image | Image n - For multi-stream camera | Binary |
Metadata JSON#
| Field | Optional | Type | Default | Description |
|---|---|---|---|---|
| version | No | String | 1 | Metadata format version |
| count | No | Integer (32-bit unsigned) | 1 | Number of images in the message |
| timestamp | No | String | - | Date and time string UTF-8 ISO8601. Application host datetime |
| detail | No | Image Detail Object Array | - | Images details |
Image Detail Object#
| Field | Optional | Type | Default | Description |
|---|---|---|---|---|
| FormatNamespace | Yes | String | GenICam | Image format namespace. For GenICam pixel format, use GenICam and use Compressed for compressed formats.a |
| Format | No | String | – | Image formata |
| Width | No / Yes (encoded formats) | Integer | – | Image width |
| Height | No / Yes (encoded formats) | Integer | – | Image height |
| LinePadding | Yes | Integer | 0 | Number of bytes added at the end of the byte stream to reach a multiple of 4 bytes. For example, an image with 61 pixels, mono8, will have a line padding of 3, filling the stream to reach 64 bytes. |
| ImageData | No / Yes (for MQTT) | String | – | URI with the image data or a reference to the image data.b This field is mandatory for ZeroMQ and isn't available for MQTT. |
-
The following image format namespaces are supported via this communication channel:
- To send uncompressed images: namespace
GenICam. Use The pixel format names from the GenICam pixel format naming convention as described in GenICam_PFNC_2_4.pdf in theformatfield. - To send compressed images: namespace
Compressed. The only supported value for compressed image formats in theformatfield isJPEG.
- To send uncompressed images: namespace
-
A proprietary message part URI with MIME-Type is used here. It references raw data in another message part.
Syntax:msgpart:{Message-Part-Index};{MIME-Type}
Examples:
- For GenICam image data:msgpart:2;application/octet-stream
- For
JSON entry carrying an error:#
| Field | Optional | Type | Default | Description |
|---|---|---|---|---|
| Error | No | String | – | An error description with the reason for the error |
Metadata Examples#
{
"Type": "Image",
"Data": {
"FormatNamespace": "Compressed",
"Format": "JPEG",
"Width": 80,
"Height": 60,
"ImageData": "msgpart:2;image/jpeg"
}
}