本文主要是介绍USB摄像头在TQ2440或TINY6410上帧速慢的真正原因,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
USB摄像头在TQ2440或TINY6410上帧速慢的真正原因
移植过mjpg-streamer或者ffmpeg到板子上的人都会发现,采样只有大概2fps,总想方法提升速度,修改默认配置,命令行,使用硬件编码,实际都不能明显的提高速度,原因是,这两个板子采用的是USB1.1,导致USB摄像头采集的图像无法快速的存入内存中。
USB摄像头一般输出是YUYV422,打包格式为YUYVYUYV...……,那么,假如有一幅320*240的图片,用yuv422来表示,采样方式就是每个像素采样Y信号,U,V信号隔一个采样,这样算下来,就有320*240个Y,320*120个U,320*120个V,一幅320*240大小的YUV图片占的总字节数为320*240*2个字节,每像素2个字节,也就是16位。
在内存种这样排列:Y0U0Y1V0 Y2U1Y3V1...
第一个像素的YUV值为:Y0 U0 V0
第二个像素的YUV值为: Y1 U0 V0
第三个像素的YUV值为: Y2 U1 V1
usb1.1的最高速度是12Mb/s,传输USB摄像头的一张320*240图片,需要传输320*240*2*8b,每秒只能传9.7张,也就是不算上处理器编解码等处理时间,最快也只能达到9fps,实际应用加上编码和传输,速度就更慢了。
我通过编写了一个USB图像采集程序,在PC上能达到25fps(使用USB2.0),但在TQ2440上只能达到2fps.证实了猜想。
这篇关于USB摄像头在TQ2440或TINY6410上帧速慢的真正原因的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!