What are you looking for?

Pixel Component Unpacking

Unpacking to 16-bit of 10-/12-/14-bit pixel component data

Considering that:

  • As specified by the CoaXPress standard, CoaXPress devices deliver packed pixel data,
  • Machine vision applications prefer byte or 16-bit aligned pixel component data,

the Coaxlink image pixel data processor performs the unpacking of 10-bit, 12-bit, and 14-bit pixel component data to 16-bit pixel data.

For Coaxlink Driver versions prior to 4.2, the unpacking operation was not configurable: 10-bit, 12-bit, and 14-bit pixel component data were unpacked to 16-bit using the alignment to msb method.

Since version 4.2, the unpacking operation is user-configurable through the UnpackingMode GenICam feature. Two options are available:

  • Unpacking to lsb.
  • Unpacking to msb.

Since version 7.0.1, the unpacking operation can be disabled for monochrome and Bayer CFA pixels with a third option of the UnpackingMode GenICam feature:

  • Unpacking off.

Note: Since Coaxlink Driver 4.3, the default option is "Unpacking to lsb".

Unpacking to lsb – Default

The significant bits of the pixel component data are aligned to the least significant bit of the data container. Padding '0' bits are put as necessary in the most significant bits to reach the next 8-bit boundary.

Bit assignment of 2-byte pixel components after unpacking to lsb
Input bit depth 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
10-bit 0 0 0 0 0 0 D9 D8 D7 D6 D5 D4 D3 D2 D1 D0
12-bit 0 0 0 0 D11 D10 D9 D8 D7 D6 D5 D4 D3 D2 D1 D0
14-bit 0 0 D13 D12 D11 D10 D9 D8 D7 D6 D5 D4 D3 D2 D1 D0
Note: Unpacking to lsb doesn't modify the pixel component value.

Unpacking to msb – Optional

The significant bits of the pixel component data are aligned to the most significant bit of the data container. Padding '0' bits are put as necessary in the least significant bits to reach the next 8-bit boundary.

Bit assignment of 2-byte pixel components after unpacking to msb
Input bit depth 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
10-bit D9 D8 D7 D6 D5 D4 D3 D2 D1 D0 0 0 0 0 0 0
12-bit D11 D10 D9 D8 D7 D6 D5 D4 D3 D2 D1 D0 0 0 0 0
14-bit D13 D12 D11 D10 D9 D8 D7 D6 D5 D4 D3 D2 D1 D0 0 0
Note: Unpacking to msb 10-bit, 12-bit, and 14-bit pixel components multiplies the pixel component value by 64, 16, and 4 respectively.

Note: Unpacking 8-bit and 16-bit pixel components is a neutral operation:

  • The size of the data container is unchanged: One byte for 8-bit pixel components; two bytes for 16-bit pixel components
  • The data bits are not modified
Note: Unpacking 10-bit, 12-bit, and 14-bit pixel components increases the amount of data by 160%, 133%, and 114% respectively.

See also in the Reference

UnpackingMode