I am using an IMX290 sensor, which supports 10/12 bit RAW bayer on a product with TX2 and JetPack 4.2.
We require the raw bayer data for downstream processing in a gstreamer pipeline. gstreamer does not currently handle more than 8 bit bayer data, which is fine for us.
We would like the hardware to perform the truncation of the 10 bit → 8 bit data. The way I see it the hardware should support this in two ways:
a) CSI → VI → ISP and using libargus
This pipeline works, but will already perform debayer. We need raw bayer. According to current libargus documentation (32.3.1 Release), raw bayer output is not yet supported, and planned for a future release.
b) CSI → VI → MC and using v4l2
This pipeline works for getting the raw data, and using e.g. v4l2-ctrl capture I can see the data is provided as 16 bit to memory with the least significant bits replicated. According to the TRM it should be possible to configure the VI to use T_L8 pixel format and truncate to 8-bit for further downstream processing by gstreamer.
My questions are:
- Is there any update on status libargus and raw bayer output?
- How can I configure VI to use T_L8 pixel format instead of the 16 bit format? I was looking for this in the device-tree, but couldn’t find anything there.