Pixel Formatting
Pixel Component Unpacking
Grablink boards unpack 10-bit, 12-bit, and 14-bit pixel component data to 16-bit pixel data.
Two unpacking options are available:
● | Unpacking to lsb (Default setting) |
● | Unpacking to msb |
Unpacking to lsb
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.
● | 10-bit pixels: 0000 00<pp pppp pppp> |
● | 12-bit pixels: 0000 <pppp pppp pppp> |
● | 14-bit pixels: 00<pp pppp pppp pppp> |
Note: Unpacking to lsb doesn't modify the pixel component value.
Unpacking to msb
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.
● | 10-bit pixels: <pppp pppp pp>00 0000 |
● | 12-bit pixels: <pppp pppp pppp> 0000 |
● | 14-bit pixels: <pppp pppp pppp pp>00 |
Note: Unpacking 10-bit, 12-bit, and 14-bit pixel components to msb 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.
No unpacking
The packed image data transmitted by the camera through the CoaXPress Link is delivered as is to the output buffer.
Pixel Bit Depth Reduction
Grablink boards are capable to reduce the bit depth of 10-/12-/14- and 16-bit pixel components to 8-bit by truncation of the least significant bits.
Pixel Format Control
Pixel Component Unpacking and Pixel Bit Depth reduction are controlled by the ColorFormat parameter.
For instance for monochrome 10-bit pixels:
● | Set ColorFormat to Y8 to select the bit depth reduction |
● | Set ColorFormat to Y16 to select the unpacking to msb |
● | Keep the default value (or set) ColorFormat to Y10 to select unpacking to lsb |
Valid Pixel Format Configurations
Refer to Configurations for Monochrome Pixels, Configurations for Bayer CFA Pixels and Configurations for RGB Pixels
for an exhaustive list of valid pixel processing configurations.
Refer to MultiCam Storage Formatsfor an exhaustive description of pixel formats.
ColorFormat Properties
The following table describes the properties of each ColorFormat values:
ColorFormat |
Format class name |
Bit depth |
Number of components |
Number of bytes per pixel |
Number of planes |
---|---|---|---|---|---|
Y8 |
Monochrome |
8 |
1
|
1 |
1
|
Y10 |
10 |
2
|
|||
Y12 |
12 |
||||
Y14 |
14 |
||||
Y16 |
16 |
||||
BAYER8 |
Raw Bayer CFA
|
8 |
1 |
1 |
1 |
BAYER10 |
10 |
2
|
|||
BAYER12 |
12 |
||||
BAYER14 |
14 |
||||
BAYER16 |
16 |
||||
RGB24 |
Packed (A)RGB Color |
8/8/8 |
3 |
3 |
1 |
RGB32
|
8/8/8/8 |
4 |
4 |
||
RGB24PL |
Planar RGB Color |
8/8/8 |
3 |
3 |
3 |
RGB30PL |
10/10/10 |
6 |
|||
RGB36PL |
12/12/12 |
||||
RGB42PL |
14/14/14 |
||||
RGB48PL |
16/16/16 |
Note:
□ | When the pixel container is larger than the bit depth (namely for 10-, 12-, and 14-bit cases), the significant bits are justified to the LSB and the uppermost unused bits are forced to 0. |
□ | In case of packed (A) RGB formats, the components are stored at successive byte addresses in the following order: B, G, R, (A). B always occupies the LSB position. The A component is forced to 0. |
□ | In case of planar RGB formats, the planes are indexed in the following order: R, G, B; the R plane is the plane of index 0. |