USB摄像头在TQ2440或TINY6410上帧速慢的真正原因

来源:互联网 发布:java tempfile 编辑:程序博客网 时间:2024/06/10 15:54

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.证实了猜想。






0 0
原创粉丝点击