Hello, I have a few questions about the camera interface throughput specifications on the TX2.
We do not plan to use the ISP at all and prefer raw bayer images. The Camera interface offers a total of 40 Gbps of bandwidth, but we seem to be limited by, what I believe is the ISP.
e.g. We can run 2 x IMX378 cameras @ 12.3 MP (4056 x 3040) @ 30 fps @ 10 bit (4096 actual frame width) simultaneously, but we cannot run a 3rd. This would be 4096 x 3040 x 30 fps = 373 Mpix/sec * 2 cameras = 747 MPixels/sec. We should be able to run 3 cameras simultaneously at this resolution but if we do we see an I/O error on one of the cameras if we try. This testing was done using the tegra_multimedia_api/samples/v4l2cuda sample, with the CUDA processing removed and the following fields:
static const char * dev_name = "/dev/video0";
static io_method io = IO_METHOD_USERPTR;
static int fd = -1;
struct buffer * buffers = NULL;
static unsigned int n_buffers = 0;
static unsigned int width = 4056;
static unsigned int height = 3040;
static unsigned int count = 10;
static unsigned char * cuda_out_buffer = NULL;
static bool cuda_zero_copy = true;
static const char * file_name = "out.ppm";
static unsigned int pixel_format = V4L2_PIX_FMT_SBGGR10;
static unsigned int field = V4L2_FIELD_NONE;
If we run the same test using UHD resolution (3840 x 2160) @ 10 bit, we can run 3 cameras, but not 4.
I have 2 questions:
1.) Perhaps I am miscalculating this somehow or there are other factors of why I cannot get 1.4 Gpixels/second through the pipeline?
2.) Since we are not using the ISP, is it possible to bypass the ISP completely and achieve a higher throughput beyond the 1.4 Gigapixel/second threshhold? With 2 cameras running at 4056 x 3040 @ 30 fps @ 10 bit, we are only using about 12 Gbps. This leaves a lot of unused CSI bandwidth on the table if 40 Gbps is available.