Hi,
I have been experimenting with multi-camera setup on a Jetson TX2 EVM, using IMX274, IMX185 and a Leopard Imaging 3 port CSI adapter.
I created a simple program that combines the and example from Argus/Samples directory and I am experiencing a performance degradation issue of IMX185 when running concurrent camera captures.
If I ran a capture session with only IMX185 (1080p) or IMX274(4K), I can achieve 30 fps capturing 720p streams from either camera (1 or multiple streams).
When I capture from both camera concurrently (1 or 2 streams from each camera), the IMX185 capture frame rate drops from 30 fps to ~19 fps. The IMX274 (4K) is not affected and produce 30 fps in concurrent capture.
Can someone explain the cause of this drop in performance or perhaps offer some enlightment as how to proceed in resolving this issue?
Camera 0 test data in single camera capture: [IMX185, 1080p, capturing 720p streams]
Executing Argus Sample: testCamera
Requested camera ID: 0
PRODUCER: Argus Version: 0.96.2 (multi-process)
PRODUCER: Camera found = 2
CONSUMER: Waiting until producer is connected...
CONSUMER: Waiting until producer is connected...
PRODUCER: Starting repeat capture requests.
CONSUMER: Producer has connected; continuing.
CONSUMER: Producer has connected; continuing.
CONSUMER: No more frames. Cleaning up.
-------------- libArgus: cam0_1 (cam 0) ----------------
Average: 33.0719 ms (30.2372 fps)
frames: 143
Min interval : 25.0233 ms
Max interval : 34.9925 ms
CONSUMER: Done.
CONSUMER: No more frames. Cleaning up.
-------------- libArgus: cam0_2 (cam 0) ----------------
Average: 33.0828 ms (30.2272 fps)
frames: 143
Min interval : 26.1963 ms
Max interval : 35.0769 ms
CONSUMER: Done.
PRODUCER: Done -- exiting.
Camera 0 test data in concurrent camera capture: [IMX185/1080p and IMX274/4K, capturing 720p streams]
Executing Argus Sample: testCamera
Requested camera ID: All available (2)
PRODUCER: Argus Version: 0.96.2 (multi-process)
PRODUCER: Camera found = 2
CONSUMER: Waiting until producer is connected...
CONSUMER: Waiting until producer is connected...
CONSUMER: Waiting until producer is connected...
CONSUMER: Waiting until producer is connected...
PRODUCER: Starting repeat capture requests.
CONSUMER: Producer has connected; continuing.
CONSUMER: Producer has connected; continuing.
CONSUMER: Producer has connected; continuing.
CONSUMER: Producer has connected; continuing.
CONSUMER: No more frames. Cleaning up.
-------------- libArgus: cam0_1 (cam 0) ----------------
Average: 51.062 ms (19.584 fps)
frames: 93
Min interval : 36.5522 ms
Max interval : 65.4742 ms
CONSUMER: Done.
CONSUMER: No more frames. Cleaning up.
-------------- libArgus: cam0_2 (cam 0) ----------------
Average: 51.0537 ms (19.5872 fps)
frames: 93
Min interval : 36.4288 ms
Max interval : 65.9516 ms
CONSUMER: Done.
CONSUMER: No more frames. Cleaning up.
-------------- libArgus: cam1_1 (cam 1) ----------------
Average: 33.0721 ms (30.237 fps)
frames: 140
Min interval : 2.01564 ms
Max interval : 37.4054 ms
CONSUMER: Done.
CONSUMER: No more frames. Cleaning up.
-------------- libArgus: cam1_2 (cam 1) ----------------
Average: 33.0675 ms (30.2412 fps)
frames: 140
Min interval : 1.32623 ms
Max interval : 37.7348 ms
CONSUMER: Done.
PRODUCER: Done -- exiting.