Bitstreams
The bitstreams available for the qtec C-Series platform.
Selecting bitstream
The camera will by default select a suitable bitstream for the sensor that it has detected, the defaults are as follows:
| Sensor family | Bitstream family name | Default bitstream |
|---|---|---|
| IMX | tokyo | draco-tokyo |
| GSENSE | paris | pisces-paris |
| CMOSIS & GMAX | copenhagen | draco-copenhagen |
| X-Scan | warsaw | mensa-warsaw |
It is possible to make the camera use a different bitstream than the default if for example a desired feature is not present on the default bitstream, but is instead present in a different bitstream of the same sensor family. Refer to the bitstream feature specification list further down in order to see which IP cores are supported in each bitstream.
In order to use a different bitstream for a sensor it is necessary to create
two symbolic links (one for the .kbpi file and one for the .dtb file).
The symbolic links have to be named <bitstream_family>-default.<kbpi or dtb>
and point to the desired bitstream files.
cd /lib/firmware/qtec
ln -s <desired_bitstream>.kbpi <bitstream_family>-default.kbpi
ln -s <desired_bitstream>.dtb <bitstream_family>-default.dtb
If the .dtb and .kbpi are not symlinked to the same bitstream (e.g.
draco-tokyo) then it can result in undefined behavior. And if the symlinks
point to an incompatible bitstream (from a wrong sensor family) then it will
refuse to load, meaning it will not try to use the overall default bitstream.
The former mechanism of setting the desired bitstream through the usage of
the bsname kernel parameter is still supported but is deprecated and will be
removed soon.
Currently the usage of the bsname kernel parameter still overrules any
symlink references.
Example
The default bitstream for the GSENSE2020 is pisces-paris which supports only rolling shutter. But a specific application requires global shutter which is only supported in the capricorn-paris bitstream.
In order to make the camera load this bitstream instead of the default one
it is necessary to go into the folder with all the bitstreams (/lib/firmware/qtec/)
and create a symbolic link (symlink) from capricorn-paris to paris-default
for both the .dtb and .kbpi files:
cd /lib/firmware/qtec
ln -s capricorn-paris.kbpi paris-default.kbpi
ln -s capricorn-paris.dtb paris-default.dtb
Multiple heads
If you have multiple heads/sensors of the same family and want one or more to
have a different bitstream from the rest you can also specify the PCI slot for
the bitstream by prefixing it like this: <PCI_slot>-<bitstream_family>-default.
For example 01:00-paris-default if the bitstream should only apply to the
head/sensor at PCI slot 01:00.
qtec C-Tokyo
The qtec C-Tokyo Family supports Sony IMX sensors.
apus-tokyo
| IP core name | IP codename | IP version | IP core description |
|---|---|---|---|
| Encoder Interface | axi_encoder_if | 1.00.a | Encoder count reader (resolution 0.25 mm) |
| Bilinear Interpolation | axi_fb4_bayer_interpol | 1.00.a | Bayer interpolation (all, red or blue) |
| White Balance | axi_fb4_white_balance | 4.00.a | White balance correction using simple offset and gain calculation |
| Gain Function | axi_fb4_gain_function | 2.00.a | Intensity correction image based on programmable function |
| Look-Up Table | axi_fb4_lut | 1.00.a | 12-bit conversion through 12-bit Look-Up Table |
| Convolution Matrix | axi_fb4_convolution_matrix | 1.00.a | A kernel, convolution matrix used for blurring, sharpening, embossing, edge detection... |
| Format Conversion | axi_fb4_conv | 2.00.a | A format conversion core to RGBA, HSVA and YUVX |
| Video Packer | axi_fb4_packer | 4.10.a | Video packer |
Sony IMX990 and IMX420/421
are not supported in apus-tokyo.
Check corna-tokyo or draco-tokyo.
corna-tokyo
| IP core name | IP codename | IP version | IP core description |
|---|---|---|---|
| Encoder Interface | axi_encoder_if | 1.10.a | Encoder count reader (resolution 0.25 mm) |
| Look-Up Table | axi_fb4_lut | 1.00.a | 12-bit conversion through 12-bit Look-Up Table |
| Video Packer | axi_fb4_packer | 4.10.a | Video packer |
| White Balance | axi_fb4_white_balance | 4.00.a | White balance correction using simple offset and gain calculation |
corna-tokyo supports the Sony IMX990 and the
IMX420/421.
draco-tokyo
| IP core name | IP codename | IP version | IP core description |
|---|---|---|---|
| Encoder Interface | axi_encoder_if | 1.10.a | Encoder count reader (resolution 0.25 mm) |
| Bilinear Interpolation | axi_fb4_bayer_interpol | 1.00.a | Bayer interpolation (all, red or blue) |
| White Balance | axi_fb4_white_balance | 4.00.a | White balance correction using simple offset and gain calculation |
| Color Conversion Matrix | axi_fb4_colour_conv | 1.00.a | 4x4 (RGBA) CCM for color conversion/correction |
| Gain Function | axi_fb4_gain_function | 2.00.a | Intensity correction image based on programmable function |
| Look-Up Table | axi_fb4_lut | 1.00.a | 12-bit conversion through 12-bit Look-Up Table |
| Image Transformation | axi_fb4_xform | 5.00.a | Image transformation based on input image |
| Video Packer | axi_fb4_packer | 4.10.a | Video packer |
| Masker | axi_fb4_masker | 1.00.a | Rectangle masking using an specified value |
| Image Thinner | axi_fb4_thinner | 1.00.a | Line and column removal |
draco-tokyo supports the Sony IMX990 and the
IMX420/421.
qtec C-Paris
The qtec C-Paris Family supports Gpixel GSENSE sensors.
pisces-paris
| IP core name | IP codename | IP version | IP core description |
|---|---|---|---|
| Encoder Interface | axi_encoder_if | 1.10.a | Encoder count reader (resolution 0.25 mm) |
| GSENSE Driver | axi_fb4_gsense_if | 2.00.a | GSENSE driver with rolling/global shutter ('exposure per line' available in rolling shutter mode) |
| White Balance | axi_fb4_white_balance | 4.00.a | White balance correction using simple offset and gain calculation |
| Look-Up Table | axi_fb4_lut | 1.00.a | 12-bit conversion through 12-bit Look-Up Table |
| Video Packer | axi_fb4_packer | 4.10.a | Video packer |
pisces-paris supports both the rolling and global shutter modes (since March 2025).
In Rolling shutter mode the exposure time is controlled per line in this mode. See the line exposure examples under the GSENSE sensor guide.
The maximum exposure times are limited in this bitstream.
- Global shutter: 16ms for a full frame (higher for smaller frames)
- Rolling shutter: 68ms for a full frame (higher for smaller frames)
See GSENSE sensor guide for more information.
capricorn-paris
| IP core name | IP codename | IP version | IP core description |
|---|---|---|---|
| Encoder Interface | axi_encoder_if | 1.10.a | Encoder count reader (resolution 0.25 mm) |
| GSENSE Global Shutter Driver | axi_fb4_gsense_if | 1.00.a | GSENSE driver with global shutter (no exposure per line) |
| White Balance | axi_fb4_white_balance | 4.00.a | White balance correction using simple offset and gain calculation |
| Look-Up Table | axi_fb4_lut | 1.00.a | 12-bit conversion through 12-bit Look-Up Table |
| Video Packer | axi_fb4_packer | 4.10.a | Video packer |
capricorn-paris supports both the rolling and global shutter modes.
However it does not support the exposure time per line functionality.
Use pisces-paris if exposure time per line is
desired.
Note that when using the global shutter mode with this bitstream there are some combinations of framerate and exposure times that can result in artifacts in the image. See Image artifacts under GSENSE sensor guide for more information.
Therefore using the pisces-paris bitstream
(default) is prefered, as long as the limitation of 16ms for the maximum
exposure time is acceptable.
qtec C-Copenhagen
The qtec C-Copenhagen Family supports ams CMOSIS and Gpixel GMAX sensors.
cygnus-copenhagen
| IP core name | IP codename | IP version | IP core description |
|---|---|---|---|
| Encoder Interface | axi_encoder_if | 1.00.a | Encoder count reader (resolution 0.25 mm) |
| Bilinear Interpolation | axi_fb4_bayer_interpol | 1.00.a | Bayer interpolation (all, red or blue) |
| White Balance | axi_fb4_white_balance | 4.00.a | White balance correction using simple offset and gain calculation |
| Gain Function | axi_fb4_gain_function | 2.00.a | Intensity correction image based on programmable function |
| Look-Up Table | axi_fb4_lut | 1.00.a | 12-bit conversion through 12-bit Look-Up Table |
| Video Packer | axi_fb4_packer | 4.10.a | Video packer |
| Convolution Matrix | axi_fb4_convolution_matrix | 1.00.a | A kernel, convolution matrix used for blurring, sharpening, embossing, edge detection... |
| Format Conversion | axi_fb4_conv | 2.00.a | A format conversion core to RGBA, HSVA and YUVX |
draco-copenhagen
| IP core name | IP codename | IP version | IP core description |
|---|---|---|---|
| Encoder Interface | axi_encoder_if | 1.00.a | Encoder count reader (resolution 0.25 mm) |
| White Balance | axi_fb4_white_balance | 4.00.a | White balance correction using simple offset and gain calculation |
| Look-Up Table | axi_fb4_lut | 1.00.a | 12-bit conversion through 12-bit Look-Up Table |
| Video Packer | axi_fb4_packer | 4.00.a | Video packer |
| Bilinear Interpolation | axi_fb4_bayer_interpol | 1.00.a | Bayer interpolation (all, red or blue) |
| Gain Function | axi_fb4_gain_function | 2.00.a | Intensity correction image based on programmable function |
| Image Transformation | axi_fb4_xform | 5.00.a | Image transformation based on input image |
| Masker | axi_fb4_masker | 1.00.a | Rectangle masking using an specified value |
| Image Thinner | axi_fb4_thinner | 1.00.a | Line and column removal |
lyra-copenhagen
| IP core name | IP codename | IP version | IP core description |
|---|---|---|---|
| Encoder Interface | axi_encoder_if | 1.00.a | Encoder count reader (resolution 0.25 mm) |
| White Balance | axi_fb4_white_balance | 4.00.a | White balance correction using simple offset and gain calculation |
| Look-Up Table | axi_fb4_lut | 1.00.a | 12-bit conversion through 12-bit Look-Up Table |
| Video Packer | axi_fb4_packer | 4.00.a | Video packer |
qtec C-Warsaw
The qtec C-Warsaw Family that supports X-Scan Imaging sensors.
mensa-warsaw
| IP core name | IP codename | IP version | IP core description |
|---|---|---|---|
| Encoder Interface | axi_encoder_if | 1.10.a | Encoder count reader (resolution 0.25 mm) |
| White Balance | axi_fb4_white_balance | 4.00.a | White balance correction using simple offset and gain calculation |
| Look-Up Table | axi_fb4_lut | 1.00.a | 12-bit conversion through 12-bit Look-Up Table |
| Video Packer | axi_fb4_packer | 4.10.a | Video packer |