1. issue
USB3.0单路uvc iso传输速率只有92MB/s, 1080p yuv 23.4fps,我们需要优化UVC传输速率,提高YUV帧率
2. analysis
2.1 ISO速度
ISO速度由mult,burst,max_packet_size以及interval决定
目前,mult=2, burst=15,max_packet_size =1024,interval=3
要提高速度只能降低interval,但是降低interval会造成:VS request completed with status -18
2.2 VS request completed with status -18
要解决:VS request completed with status -18
我们应该在uvc传输完成event中尽快提供下一帧数据,然后入queue发送。
对于yuv video,我们已经使用了ping-pong buffer机制,可以提高数据供给速度
对于dummy yuv,由于使用的是memset,速度也比较快(比memcpy快很多),测试单路基本没问题,对于多路降低interval会卡顿。(现在也改成了ping-pong buffer机制,采用单独线程提供数据)
对于MJPG,已经去掉了memcpy,采用zero-copy机制
2.3 修改interval