找回密码
 注册
搜索
查看: 6299|回复: 21

[讨论] windows系统下USB摄像头驱动开发

[复制链接]
发表于 2008-10-15 13:54:13 | 显示全部楼层 |阅读模式
如题,有哪位同学做过相关的开发?
有些问题要请教。
3Q
 楼主| 发表于 2008-10-20 16:57:02 | 显示全部楼层
难道已经过时了?
点评回复

使用道具 举报

 楼主| 发表于 2008-10-21 10:09:47 | 显示全部楼层
目前是手机上的camera输出yuv格式的数据,想通过usb将数据上传至pc来进行显示。
可能输出yuv格式的话,能够传输的图像尺寸受很大的限制。
另外,如果想将其打包成符合uvc定义的数据格式,需要如何实现?
3Q
点评回复

使用道具 举报

发表于 2008-10-21 15:31:01 | 显示全部楼层
楼主想将手机变成PC Camera?
大多数手机,只能以USB Storage 方式,与PC 以无驱方式交换数据和图象。
要求将手机上Camera 以YUV格式,以UVC方式传输图象,恐怕就必须按照UVC要求专门编制软件。
按理说,Camera 与PC 进行图象传输,与手机的其他部件基本无关。对PC而言,可以认为此时外
接的就是1个PC Camera! 如此,类似松翰的PC Camera 芯片恐无法使用,毕竟不是为手机设计的。
楼主先前提出的问题与现在是同一个?
点评回复

使用道具 举报

 楼主| 发表于 2008-10-21 15:42:25 | 显示全部楼层
1、先前提出的问题与现在的基本上算是同一个。
2、就是说,如果将手机的yuv数据构建成uvc方式,需要额外在 手机端 增加软件处理?
3、USB storage方式是什么?
3Q
点评回复

使用道具 举报

发表于 2008-10-21 18:54:43 | 显示全部楼层
USB storage 为U盘的工作方式
点评回复

使用道具 举报

 楼主| 发表于 2008-10-22 11:03:25 | 显示全部楼层
目前手机上面是按照u盘的工作方式传输数据的。
如果在此基础上 直接 传输camera输出的yuv数据,不构建uvc,在实现的可行性上,还存在哪些问题?
点评回复

使用道具 举报

发表于 2008-10-22 14:49:30 | 显示全部楼层
1、USB Storage 方式是否能用于播放活动画面,我不知道,待查。
2、1个USB接口不可能同时工作于两种工作芳式;
3、若 USB Storage 方式可以播放画面,UVC 就多此一举?
4、我还需要学习,包括你的想法能否成为特例。恐怕一时无结果。
5、请楼主向其他人请教,如有结果,也请告诉大家。至少多一个思路。
交流、讨论也是学习,谢谢楼主积极讨论热点问题!
[br]<p align=right><font color=red>+1 RD币</font></p>
点评回复

使用道具 举报

 楼主| 发表于 2008-10-23 11:34:59 | 显示全部楼层
既然提到手机是usb storage方式进行数据传输的,那么市场上销售的网络摄像头是用什么方式进行数据传输的?iso、bulk。。。。。
[此贴子已经被作者于2008-10-23 15:46:22编辑过]
点评回复

使用道具 举报

发表于 2008-10-23 14:16:54 | 显示全部楼层
通常采用ISO传输方式。也见过用bulk方式传输的,比如某些sensor厂商的demo板[br]<p align=right><font color=red>+3 RD币</font></p>
点评回复

使用道具 举报

 楼主| 发表于 2008-10-23 16:00:12 | 显示全部楼层
又在考虑一个新问题:
数据量的问题
假如传输320*240,15fps,rgb24格式的视频数据,计算出来的数据量为320*240*3字节*15fps=3456000字节/s,大概是3.3M字节/s,那么这个数值岂不是超过了usb1.1的传输能力(1.5M字节/s)?
点评回复

使用道具 举报

发表于 2008-10-23 19:22:24 | 显示全部楼层
不需要乘以3的,sensor向PC传输raw data,数据量为320*240*15fps=1152000B/s,在USB1.1下,应该勉强做到15fps。RGB插值运算是在PC端由驱动程序完成的
[br]<p align=right><font color=red>+1 RD币</font></p>
点评回复

使用道具 举报

发表于 2008-10-23 20:16:40 | 显示全部楼层
如楼上所述,我以为能USB1。1传输能达到 10 fps,就不错了:
1、Sensor数据输出与行、场信号以及数据时钟同步,数据输出不连续,时间间隔大约占1半。
2、USB自身开销、传输和控制开销无法传输数据;
3、按USB2。0用于视频传输,同步传输经验值 20 MBytes/s,批量传输经验值<30MBytes/s。
     即实际传输约为标称值的50%。  (480Mb /8)*50%=30MBytes
4、类推USB1.1, (12Mb/8)*50%=0.75MBytes。
    0.75 MBytes / (320*240)= 9.7 fps
5、解决USB传输速度问题,楼上传输“USB传输RAW数据”是个办法,如此只是加重了PC 端
    负担罢了。[br]<p align=right><font color=red>+1 RD币</font></p>
点评回复

使用道具 举报

 楼主| 发表于 2008-10-24 14:50:10 | 显示全部楼层
以下是引用Lasert在2008-10-23 19:22:24的发言:
不需要乘以3的,sensor向PC传输raw data,数据量为320*240*15fps=1152000B/s,在USB1.1下,应该勉强做到15fps。RGB插值运算是在PC端由驱动程序完成的

raw格式的数据量是小很多,可是在usb传输的video类型描述里面,并没有讲它能够传输raw格式的,它支持某些yuv、rgb。
你提到的这种raw格式,是有些sensor直接输出的那种raw格式吗?
点评回复

使用道具 举报

发表于 2008-10-24 22:58:32 | 显示全部楼层
现在几乎所有都可以输出RAW格式,由于仅仅关于“亮度”,所以每个像素占据1个字节。数据流与YUV420相当。
数据流最小的是数据压缩(MJPEG、H263、H264)后再USB传输。由此Camera端和PC端的压力也增加了。[br]<p align=right><font color=red>+1 RD币</font></p>
点评回复

使用道具 举报

 楼主| 发表于 2008-10-28 15:01:01 | 显示全部楼层
那么,作为pc camera来说,传输数据的时候一定要使用iso传输类型?
还是说,也可以选择其它的块传输、中断传输等类型?
点评回复

使用道具 举报

发表于 2008-10-28 16:37:49 | 显示全部楼层
按照USB2.0协议,high speed 传输速度如下:
1、iso 的传输速度约20M Bytes /s;
2、blk 约为30 M Bytes/s;
3、中断传输主要用于I/O控制;
可以看协议自己计算出来。[br]<p align=right><font color=red>+1 RD币</font></p>
点评回复

使用道具 举报

发表于 2008-10-28 16:53:51 | 显示全部楼层
可能的话, 不如直接传motion JPEG来的速度快....
点评回复

使用道具 举报

 楼主| 发表于 2008-10-30 17:34:03 | 显示全部楼层
传motion jpeg的话,需要发送端增加编码处理。
在目前传输链路还没有建立之前,还是直接传输目前sensor直接输出的数据吧,待传输链路成功建立之后,再考虑优化所传输的图像数据。
点评回复

使用道具 举报

发表于 2008-10-30 23:51:55 | 显示全部楼层
OV2640 就可以输出 MJPEG (大约压缩率约10)数据。
点评回复

使用道具 举报

高级模式
B Color Image Link Quote Code Smilies

本版积分规则

Archiver|手机版|小黑屋|52RD我爱研发网 ( 沪ICP备2022007804号-2 )

GMT+8, 2024-5-16 17:11 , Processed in 0.052712 second(s), 17 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表