Using Subpixels with Automation Technology C6 cameras
The usage of subpixels for cameras from Automation Technologies is crucial to achieve high sampling rates in the Z coordinate to work with high resolution pointclouds in CVB.
Using subpixeling of C6 cameras is a bit different compared to the earlier C5 model from Automation Technology. A description on how to use subpixels for a C5 can be found here.
For the C6 the number of used subpixels is no longer limited to 6 and additionally offers the option to use your custoimized subpixel resolution instead of beeing limited to the fixed values that were offered for the C5. This option also includes the advantage to be able to save bandwidth by reducing the bit depth of the rangemap.
Generals considerations:
Subpixles allow to subsample a line position on the camera sensor by using line extraction algorithms like COG or FIR-Peak. The possible precision for the calculation of the line position is limited to 1/(2^subpixels) which is 1/64 in case of 6 subpixels.
The allowed number of subpixels to use is depending on the AOI Height and the bit depth of the image. The AOI Height determines the required bits to describe the full line where the laserline is extracted from the sensor. Using an AOI Height of 256 will already require 8 bit to represent a line projection detected in line 129 to 256 of the sensor. Reaching subpixel precision for the calculation of the line position now requires the usage of subpixels. As we already use 8 bit for the description of the full line, we will need a 12 bpp or 16 bpp image format to use subpixels. In case of 16 bpp we are now able to use 8 subpixels for a C6 while using a C5 the number of subpixels would be limited to 6.
Here are some calculations on the achievable subpixel precision using a C6:
Maximum number of available subpixels is described as follows:
(where Bpp is the Bit Depth of the Rangemap).
Following that rule the theoretically used subpixel precisions can be using depending on AOI Height and Bit Depth. Note that the theoretical precision is not equal to the achievable accuracy, especially using high subpixel values.
max. AOI height | max. subpixels (8Bit) | resolution (8Bit, Range 256) | max. subpixels (12Bit, Range 4096) | resolution (12Bit, Range 4096) | max. subpixels (16Bit, Range 65536) | resolution (16Bit, Range 65536) |
---|---|---|---|---|---|---|
4 | 6 | 0.015625 | 10 | 0.000977 | 14 | 0.000061 |
8 | 5 | 0.03125 | 9 | 0.001953 | 13 | 0.000122 |
16 | 4 | 0.0625 | 8 | 0.003906 | 12 | 0.000244 |
32 | 3 | 0.125 | 7 | 0.007813 | 11 | 0.000488 |
64 | 2 | 0.25 | 6 | 0.015625 | 10 | 0.000977 |
128 | 1 | 0.5 | 5 | 0.03125 | 9 | 0.001953 |
256 | 0 | 1 | 4 | 0.0625 | 8 | 0.003906 |
512 | 0 | bit overflow | 3 | 0.125 | 7 | 0.007813 |
1024 | 0 | bit overflow | 2 | 0.25 | 6 | 0.015625 |
2048 | 0 | bit overflow | 1 | 0.5 | 5 | 0.03125 |
4096 | 0 | bit overflow | 0 | 1 | 4 | 0.0625 |
Based on these limits the value for subpixel precision can be set manually on the camera nodemap and will be used in the sensor calibration information, when applying the calibration in CVB.