[aravis]

  • From: Arkadiusz Raj <arek.raj@xxxxxxxxx>
  • To: aravis@xxxxxxxxxxxxx
  • Date: Mon, 26 Feb 2018 10:24:39 +0100

I have struggling for some time using SBC and high resolution USB camera. I
had big problems with reception of the images using Odroid XU4 or Rock64
SBCs.
In this case it was TIS DMK33UX178 camera that I had used.

I spent some time with TIS troubleshooters, and results of discussion is as
follow:





*> From specification, maximum is 3,072×2,048 (6.3 MP) Y800 @ 60 fps or
3,072×2,048 (6.3 MP) Y16 @30 fps > How to achieve that? *


















*Two things needed: - Use a computer that can handle that amount of data,
and at the same time keep servicing USB - Use a driver that is optimized
for exactly that From what I see in the aravis source code, it uses
synchronous bulk transfers. That means it will not achieve as much USB
bandwidth as it could using asynchronous I/O. When trying the same camera
as a UVC device using guvcview, I get complete images at 3072x2048 (8-bits)
on the odroid XU4. Since what the camera does is very similar in UVC and
U3V modes, UVC working better suggests that the UVC driver avoids downtimes
in USB utilization, which is what async I/O would achieve. (Using UVC mode,
I found that incomplete image transfers start happening at around 32fps at
full resolution. For reference, I got 4 fps with aravis.) I know that
changing aravis to use async I/O is a non-trivial change, but I think it is
required for using low-end computers with fast cameras.*
I would love to see your comments on that.

BR

Arkadiusz

Other related posts:

  • » [aravis] - Cyril Baletaud
  • » [aravis] - Arkadiusz Raj