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 |