⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 linux系统下usb摄像头驱动开发 - top大杂烩 - csdnblog.htm

📁 Understanding of software development methodologies and concepts, experience with full product lifec
💻 HTM
📖 第 1 页 / 共 5 页
字号:
style="FONT-SIZE: 10.5pt; COLOR: #333333; LINE-HEIGHT: 150%">可能会在完成例程中停留较长时间,系统负担较大,可以在.</SPAN><SPAN 
style="FONT-SIZE: 10.5pt; COLOR: #333333; LINE-HEIGHT: 150%">open</SPAN><SPAN 
style="FONT-SIZE: 10.5pt; COLOR: #333333; LINE-HEIGHT: 150%">函数中初始化两个</SPAN><SPAN 
style="FONT-SIZE: 10.5pt; COLOR: #333333; LINE-HEIGHT: 150%">URB</SPAN><SPAN 
style="FONT-SIZE: 10.5pt; COLOR: #333333; LINE-HEIGHT: 150%">并将其发出,有限度地减轻系统负担。</SPAN></DIV>
<DIV style="TEXT-INDENT: 22.5pt; LINE-HEIGHT: 150%"><SPAN 
style="FONT-SIZE: 10.5pt; COLOR: #333333; LINE-HEIGHT: 150%"></SPAN>&nbsp;</DIV>
<DIV style="TEXT-INDENT: 22.5pt; LINE-HEIGHT: 150%"><STRONG><SPAN 
style="FONT-SIZE: 10.5pt; COLOR: #333333; LINE-HEIGHT: 150%">1</SPAN></STRONG><STRONG><SPAN 
style="FONT-SIZE: 10.5pt; COLOR: #333333; LINE-HEIGHT: 150%">.</SPAN></STRONG><STRONG><SPAN 
style="FONT-SIZE: 10.5pt; COLOR: #333333; LINE-HEIGHT: 150%">3 
</SPAN></STRONG><STRONG><SPAN 
style="FONT-SIZE: 10.5pt; COLOR: #333333; LINE-HEIGHT: 150%">使用双帧缓冲提高效率</SPAN></STRONG></DIV>
<DIV style="TEXT-INDENT: 22.5pt; LINE-HEIGHT: 150%"><SPAN 
style="FONT-SIZE: 10.5pt; COLOR: #333333; LINE-HEIGHT: 150%">Linux</SPAN><SPAN 
style="FONT-SIZE: 10.5pt; COLOR: #333333; LINE-HEIGHT: 150%">系统中,文件操作通常是由</SPAN><SPAN 
style="FONT-SIZE: 10.5pt; COLOR: #333333; LINE-HEIGHT: 150%">read</SPAN><SPAN 
style="FONT-SIZE: 10.5pt; COLOR: #333333; LINE-HEIGHT: 150%">、</SPAN><SPAN 
style="FONT-SIZE: 10.5pt; COLOR: #333333; LINE-HEIGHT: 150%">write</SPAN><SPAN 
style="FONT-SIZE: 10.5pt; COLOR: #333333; LINE-HEIGHT: 150%">等系统调用来完成。这些系统调用在驱动中的解决方法就是用</SPAN><SPAN 
style="FONT-SIZE: 10.5pt; COLOR: #333333; LINE-HEIGHT: 150%">copy_to_user()</SPAN><SPAN 
style="FONT-SIZE: 10.5pt; COLOR: #333333; LINE-HEIGHT: 150%">、</SPAN><SPAN 
style="FONT-SIZE: 10.5pt; COLOR: #333333; LINE-HEIGHT: 150%">copy_from_user()</SPAN><SPAN 
style="FONT-SIZE: 10.5pt; COLOR: #333333; LINE-HEIGHT: 150%">等函数在核态、户态内存空间中互相拷贝。但是对于大批量的图像数据,采用拷贝的方法显然会增加时间开销,因此用内存映射的方法解决。首先使用</SPAN><SPAN 
style="FONT-SIZE: 10.5pt; COLOR: #333333; LINE-HEIGHT: 150%">vmalloc()</SPAN><SPAN 
style="FONT-SIZE: 10.5pt; COLOR: #333333; LINE-HEIGHT: 150%">申请足够大的核态内存,将其作为图像数据缓冲空间,两个</SPAN><SPAN 
style="FONT-SIZE: 10.5pt; COLOR: #333333; LINE-HEIGHT: 150%">URB</SPAN><SPAN 
style="FONT-SIZE: 10.5pt; COLOR: #333333; LINE-HEIGHT: 150%">带回的图像数据在这里暂存;然后使用</SPAN><SPAN 
style="FONT-SIZE: 10.5pt; COLOR: #333333; LINE-HEIGHT: 150%">remap_page_range()</SPAN><SPAN 
style="FONT-SIZE: 10.5pt; COLOR: #333333; LINE-HEIGHT: 150%">函数将其逐页映射到用户空间中。户态的图像处理程序使用</SPAN><SPAN 
style="FONT-SIZE: 10.5pt; COLOR: #333333; LINE-HEIGHT: 150%">mmap()</SPAN><SPAN 
style="FONT-SIZE: 10.5pt; COLOR: #333333; LINE-HEIGHT: 150%">函数,直接读写核态图像缓冲内存,大大减少额外开销。<IMG 
alt="" src="Linux系统下USB摄像头驱动开发 - Top大杂烩 - CSDNBlog.files/tu2.bmp"></SPAN></DIV>
<DIV style="TEXT-INDENT: 22.5pt; LINE-HEIGHT: 150%"><SPAN 
style="FONT-SIZE: 10.5pt; COLOR: #333333; LINE-HEIGHT: 150%">图像数据的处理可能要花费比较长的时间,不同的算法对于数据保留时间的要求也不一样。因此可以申请两帧图像缓冲,在处理一帧图像的同时,将两个</SPAN><SPAN 
style="FONT-SIZE: 10.5pt; COLOR: #333333; LINE-HEIGHT: 150%">URB</SPAN><SPAN 
style="FONT-SIZE: 10.5pt; COLOR: #333333; LINE-HEIGHT: 150%">带回的数据全部填充到另一帧缓冲中,这样可以免去时间冲突上的麻烦。</SPAN></DIV>
<DIV style="TEXT-INDENT: 22.5pt; LINE-HEIGHT: 150%"><SPAN 
style="FONT-SIZE: 10.5pt; COLOR: #333333; LINE-HEIGHT: 150%">值得注意的是:这种方法要求时刻持有当前帧的序号、每一帧的起始地址等信息,不能将两帧图像混淆。这些信息可以保存在保留内存中,当前帧的数据整理、序号改变在</SPAN><SPAN 
style="FONT-SIZE: 10.5pt; COLOR: #333333; LINE-HEIGHT: 150%">URB</SPAN><SPAN 
style="FONT-SIZE: 10.5pt; COLOR: #333333; LINE-HEIGHT: 150%">完成例程中实现。</SPAN></DIV>
<DIV style="TEXT-INDENT: 22.5pt; LINE-HEIGHT: 150%"><SPAN 
style="FONT-SIZE: 10.5pt; COLOR: #333333; LINE-HEIGHT: 150%"></SPAN>&nbsp;</DIV>
<DIV style="LINE-HEIGHT: 150%"><STRONG><SPAN 
style="COLOR: #333333">二、</SPAN></STRONG><STRONG><SPAN style="COLOR: #333333"> 
V4L</SPAN></STRONG><STRONG><SPAN 
style="COLOR: #333333">标准的改进</SPAN></STRONG></DIV>
<DIV style="TEXT-INDENT: 22.5pt; LINE-HEIGHT: 150%"><SPAN 
style="FONT-SIZE: 10.5pt; COLOR: #333333; LINE-HEIGHT: 150%">V4L</SPAN><SPAN 
style="FONT-SIZE: 10.5pt; COLOR: #333333; LINE-HEIGHT: 150%">标准目前已经发展到第二版</SPAN><SPAN 
style="FONT-SIZE: 10.5pt; COLOR: #333333; LINE-HEIGHT: 150%">V4L2</SPAN><SPAN 
style="FONT-SIZE: 10.5pt; COLOR: #333333; LINE-HEIGHT: 150%">,其基本思路与</SPAN><SPAN 
style="FONT-SIZE: 10.5pt; COLOR: #333333; LINE-HEIGHT: 150%">V4L</SPAN><SPAN 
style="FONT-SIZE: 10.5pt; COLOR: #333333; LINE-HEIGHT: 150%">相同。</SPAN></DIV>
<DIV style="TEXT-INDENT: 22.5pt; LINE-HEIGHT: 150%"><SPAN 
style="FONT-SIZE: 10.5pt; COLOR: #333333; LINE-HEIGHT: 150%"></SPAN>&nbsp;</DIV>
<DIV style="TEXT-INDENT: 22.5pt; LINE-HEIGHT: 150%"><STRONG><SPAN 
style="FONT-SIZE: 10.5pt; COLOR: #333333; LINE-HEIGHT: 150%">2</SPAN></STRONG><STRONG><SPAN 
style="FONT-SIZE: 10.5pt; COLOR: #333333; LINE-HEIGHT: 150%">.</SPAN></STRONG><STRONG><SPAN 
style="FONT-SIZE: 10.5pt; COLOR: #333333; LINE-HEIGHT: 150%">1 
</SPAN></STRONG><STRONG><SPAN 
style="FONT-SIZE: 10.5pt; COLOR: #333333; LINE-HEIGHT: 150%">标准分析</SPAN></STRONG></DIV>
<DIV style="TEXT-INDENT: 22.5pt; LINE-HEIGHT: 150%"><SPAN 
style="FONT-SIZE: 10.5pt; COLOR: #333333; LINE-HEIGHT: 150%">根据</SPAN><SPAN 
style="FONT-SIZE: 10.5pt; COLOR: #333333; LINE-HEIGHT: 150%">V4L</SPAN><SPAN 
style="FONT-SIZE: 10.5pt; COLOR: #333333; LINE-HEIGHT: 150%">标准,户态程序在需要一帧图像时,</SPAN><SPAN 
style="FONT-SIZE: 10.5pt; COLOR: #333333; LINE-HEIGHT: 150%">CPU</SPAN><SPAN 
style="FONT-SIZE: 10.5pt; COLOR: #333333; LINE-HEIGHT: 150%">的走向如图</SPAN><SPAN 
style="FONT-SIZE: 10.5pt; COLOR: #333333; LINE-HEIGHT: 150%">2</SPAN><SPAN 
style="FONT-SIZE: 10.5pt; COLOR: #333333; LINE-HEIGHT: 150%">。</SPAN><SPAN 
style="FONT-SIZE: 10.5pt; COLOR: #333333; LINE-HEIGHT: 150%">CPU</SPAN><SPAN 
style="FONT-SIZE: 10.5pt; COLOR: #333333; LINE-HEIGHT: 150%">按照</SPAN><SPAN 
style="FONT-SIZE: 10.5pt; COLOR: #333333; LINE-HEIGHT: 150%">123456</SPAN><SPAN 
style="FONT-SIZE: 10.5pt; COLOR: #333333; LINE-HEIGHT: 150%">的顺序完成一个循环。在这里,有一个细节被忽略:在完成例程中,也就是图</SPAN><SPAN 
style="FONT-SIZE: 10.5pt; COLOR: #333333; LINE-HEIGHT: 150%">2</SPAN><SPAN 
style="FONT-SIZE: 10.5pt; COLOR: #333333; LINE-HEIGHT: 150%">中步骤</SPAN><SPAN 
style="FONT-SIZE: 10.5pt; COLOR: #333333; LINE-HEIGHT: 150%">6</SPAN><SPAN 
style="FONT-SIZE: 10.5pt; COLOR: #333333; LINE-HEIGHT: 150%">,该</SPAN><SPAN 
style="FONT-SIZE: 10.5pt; COLOR: #333333; LINE-HEIGHT: 150%">URB</SPAN><SPAN 
style="FONT-SIZE: 10.5pt; COLOR: #333333; LINE-HEIGHT: 150%">被立刻发出,但是由于这时用户程序正在阻塞等待,没办法再次提出获得图像的申请,因此在判断有无新请求时,判断的结果必然是当前无请求,导致下一个</SPAN><SPAN 
style="FONT-SIZE: 10.5pt; COLOR: #333333; LINE-HEIGHT: 150%">URB</SPAN><SPAN 
style="FONT-SIZE: 10.5pt; COLOR: #333333; LINE-HEIGHT: 150%">带回的数据被驱动丢弃;由于核态、户态的切换需要一定的时间,加上户态多进程同步等开销,等到应用程序能够再次发出获得一副图像的申请时,已经有不止一个</SPAN><SPAN 
style="FONT-SIZE: 10.5pt; COLOR: #333333; LINE-HEIGHT: 150%">URB</SPAN><SPAN 
style="FONT-SIZE: 10.5pt; COLOR: #333333; LINE-HEIGHT: 150%">带回的数据被丢弃掉,这些</SPAN><SPAN 
style="FONT-SIZE: 10.5pt; COLOR: #333333; LINE-HEIGHT: 150%">URB</SPAN><SPAN 
style="FONT-SIZE: 10.5pt; COLOR: #333333; LINE-HEIGHT: 150%">包含的数据正好是新一帧图像的开始部分。因此驱动必须等到再下一帧图像才能保存数据、缓冲。这样凭白损失了一帧图像,帧速最少下降一半。</SPAN></DIV>
<DIV style="TEXT-INDENT: 22.5pt; LINE-HEIGHT: 150%"><SPAN 
style="FONT-SIZE: 10.5pt; COLOR: #333333; LINE-HEIGHT: 150%"></SPAN>&nbsp;</DIV>
<DIV style="TEXT-INDENT: 22.5pt; LINE-HEIGHT: 150%"><STRONG><SPAN 
style="FONT-SIZE: 10.5pt; COLOR: #333333; LINE-HEIGHT: 150%">2</SPAN></STRONG><STRONG><SPAN 
style="FONT-SIZE: 10.5pt; COLOR: #333333; LINE-HEIGHT: 150%">.</SPAN></STRONG><STRONG><SPAN 
style="FONT-SIZE: 10.5pt; COLOR: #333333; LINE-HEIGHT: 150%">2 
</SPAN></STRONG><STRONG><SPAN 
style="FONT-SIZE: 10.5pt; COLOR: #333333; LINE-HEIGHT: 150%">改进思路:不间断采集</SPAN></STRONG></DIV>
<DIV style="TEXT-INDENT: 22.5pt; LINE-HEIGHT: 150%"><SPAN 
style="FONT-SIZE: 10.5pt; COLOR: #333333; LINE-HEIGHT: 150%">为了解决这个问题,可以改进</SPAN><SPAN 
style="FONT-SIZE: 10.5pt; COLOR: #333333; LINE-HEIGHT: 150%">V4L</SPAN><SPAN 
style="FONT-SIZE: 10.5pt; COLOR: #333333; LINE-HEIGHT: 150%">标准作,使其增加新的功能:通过新的参数,让</SPAN><SPAN 
style="FONT-SIZE: 10.5pt; COLOR: #333333; LINE-HEIGHT: 150%">ioetl()</SPAN><SPAN 
style="FONT-SIZE: 10.5pt; COLOR: #333333; LINE-HEIGHT: 150%">函数通知驱动不间断采集、缓冲图像数据,轮流保存在两帧缓冲区中,并在一帧图像采集好后,设定</SPAN><SPAN 
style="FONT-SIZE: 10.5pt; COLOR: #333333; LINE-HEIGHT: 150%">“</SPAN><SPAN 
style="FONT-SIZE: 10.5pt; COLOR: #333333; LINE-HEIGHT: 150%">图像采集好</SPAN><SPAN 
style="FONT-SIZE: 10.5pt; COLOR: #333333; LINE-HEIGHT: 150%">”</SPAN><SPAN 
style="FONT-SIZE: 10.5pt; COLOR: #333333; LINE-HEIGHT: 150%">旗语。户态程序只需要发出一次</SPAN><SPAN 
style="FONT-SIZE: 10.5pt; COLOR: #333333; LINE-HEIGHT: 150%">“</SPAN><SPAN 
style="FONT-SIZE: 10.5pt; COLOR: #333333; LINE-HEIGHT: 150%">获得图像</SPAN><SPAN 
style="FONT-SIZE: 10.5pt; COLOR: #333333; LINE-HEIGHT: 150%">”</SPAN><SPAN 
style="FONT-SIZE: 10.5pt; COLOR: #333333; LINE-HEIGHT: 150%">请求,就可以通过阻塞等待该旗语,不断获得图像。在采集结束后,再次通过新的参数,让驱动停止缓冲即可。</SPAN><SPAN 
style="FONT-SIZE: 10.5pt; COLOR: #333333; LINE-HEIGHT: 150%">CPU</SPAN><SPAN 
style="FONT-SIZE: 10.5pt; COLOR: #333333; LINE-HEIGHT: 150%">工作流程图如图</SPAN><SPAN 
style="FONT-SIZE: 10.5pt; COLOR: #333333; LINE-HEIGHT: 150%">3</SPAN><SPAN 
style="FONT-SIZE: 10.5pt; COLOR: #333333; LINE-HEIGHT: 150%">。<IMG alt="" 
src="Linux系统下USB摄像头驱动开发 - Top大杂烩 - CSDNBlog.files/tu3.bmp"></SPAN></DIV>
<DIV style="TEXT-INDENT: 22.5pt; LINE-HEIGHT: 150%"><SPAN 
style="FONT-SIZE: 10.5pt; COLOR: #333333; LINE-HEIGHT: 150%">注意到图</SPAN><SPAN 
style="FONT-SIZE: 10.5pt; COLOR: #333333; LINE-HEIGHT: 150%">2</SPAN><SPAN 
style="FONT-SIZE: 10.5pt; COLOR: #333333; LINE-HEIGHT: 150%">、图</SPAN><SPAN 
style="FONT-SIZE: 10.5pt; COLOR: #333333; LINE-HEIGHT: 150%">3</SPAN><SPAN 
style="FONT-SIZE: 10.5pt; COLOR: #333333; LINE-HEIGHT: 150%">,两种</SPAN><SPAN 
style="FONT-SIZE: 10.5pt; COLOR: #333333; LINE-HEIGHT: 150%">“</SPAN><SPAN 
style="FONT-SIZE: 10.5pt; COLOR: #333333; LINE-HEIGHT: 150%">判断有无新请求</SPAN><SPAN 
style="FONT-SIZE: 10.5pt; COLOR: #333333; LINE-HEIGHT: 150%">”</SPAN><SPAN 
style="FONT-SIZE: 10.5pt; COLOR: #333333; LINE-HEIGHT: 150%">的不同,即可发现新方法假定一直有请求,因此不丢弃每个</SPAN><SPAN 
style="FONT-SIZE: 10.5pt; COLOR: #333333; LINE-HEIGHT: 150%">URB</SPAN><SPAN 
style="FONT-SIZE: 10.5pt; COLOR: #333333; LINE-HEIGHT: 150%">带回的数据,轮流保存在两个帧缓冲内。</SPAN></DIV>
<DIV style="TEXT-INDENT: 22.4pt; LINE-HEIGHT: 150%"><SPAN 
style="FONT-SIZE: 10.5pt; COLOR: #333333; LINE-HEIGHT: 150%">V4L</SPAN><SPAN 
style="FONT-SIZE: 10.5pt; COLOR: #333333; LINE-HEIGHT: 150%">已经作为约定俗成的标准被内核支持,因此如果使用全新的参数,工作量将相当巨大,并且不能和现有的应用程序兼容。考虑到现有的图像采集应用程序使用</SPAN><SPAN 
style="FONT-SIZE: 10.5pt; COLOR: #333333; LINE-HEIGHT: 150%">VIDIOCMCAPTURE</SPAN><SPAN 
style="FONT-SIZE: 10.5pt; COLOR: #333333; LINE-HEIGHT: 150%">作为参数,并提供帧序号,要求驱动将图像保存到指定序号的帧缓冲内。由于驱动通常仅仅提供几帧缓冲,因此该序号不会大于某个数字,如</SPAN><SPAN 
style="FONT-SIZE: 10.5pt; COLOR: #333333; LINE-HEIGHT: 150%">10</SPAN><SPAN 
style="FONT-SIZE: 10.5pt; COLOR: #333333; LINE-HEIGHT: 150%">。因此可以继续使用</SPAN><SPAN 
style="FONT-SIZE: 10.5pt; COLOR: #333333; LINE-HEIGHT: 150%">VIDIOCMCAPTURE</SPAN><SPAN 
style="FONT-SIZE: 10.5pt; COLOR: #333333; LINE-HEIGHT: 150%">参数,搭配较大的序号来表示新增的功能,例如用</SPAN><SPAN 
style="FONT-SIZE: 10.5pt; COLOR: #333333; LINE-HEIGHT: 150%">10000</SPAN><SPAN 
style="FONT-SIZE: 10.5pt; COLOR: #333333; LINE-HEIGHT: 150%">和</SPAN><SPAN 
style="FONT-SIZE: 10.5pt; COLOR: #333333; LINE-HEIGHT: 150%">10001</SPAN><SPAN 
style="FONT-SIZE: 10.5pt; COLOR: #333333; LINE-HEIGHT: 150%">来分别表示开始和停止缓冲图像数据的要求。驱动在收到</SPAN><SPAN 
style="FONT-SIZE: 10.5pt; COLOR: #333333; LINE-HEIGHT: 150%">VIDIOCMCAPTURE</SPAN><SPAN 
style="FONT-SIZE: 10.5pt; COLOR: #333333; LINE-HEIGHT: 150%">要求后,检查这个序号。如果小于</SPAN><SPAN 
style="FONT-SIZE: 10.5pt; COLOR: #333333; LINE-HEIGHT: 150%">10000</SPAN><SPAN 
style="FONT-SIZE: 10.5pt; COLOR: #333333; LINE-HEIGHT: 150%">,则按照正常的方法处理,否则按照改进方法。这种思路可以有效解决兼容性问题。</SPAN></DIV>
<DIV style="TEXT-INDENT: 22.4pt; LINE-HEIGHT: 150%"><SPAN 
style="FONT-SIZE: 10.5pt; COLOR: #333333; LINE-HEIGHT: 150%"></SPAN>&nbsp;</DIV>
<DIV style="TEXT-INDENT: 22.4pt; LINE-HEIGHT: 150%"><STRONG><SPAN 
style="FONT-SIZE: 10.5pt; COLOR: #333333; LINE-HEIGHT: 150%">2</SPAN></STRONG><STRONG><SPAN 
style="FONT-SIZE: 10.5pt; COLOR: #333333; LINE-HEIGHT: 150%">.</SPAN></STRONG><STRONG><SPAN 
style="FONT-SIZE: 10.5pt; COLOR: #333333; LINE-HEIGHT: 150%">3 
</SPAN></STRONG><STRONG><SPAN 
style="FONT-SIZE: 10.5pt; COLOR: #333333; LINE-HEIGHT: 150%">实验结果<BR></SPAN></STRONG><SPAN 
style="FONT-SIZE: 10.5pt; COLOR: #333333; LINE-HEIGHT: 150%">在赛扬</SPAN><SPAN 
style="FONT-SIZE: 10.5pt; COLOR: #333333; LINE-HEIGHT: 150%">366</SPAN><SPAN 
style="FONT-SIZE: 10.5pt; COLOR: #333333; LINE-HEIGHT: 150%">、</SPAN><SPAN 
style="FONT-SIZE: 10.5pt; COLOR: #333333; LINE-HEIGHT: 150%">USBl</SPAN><SPAN 
style="FONT-SIZE: 10.5pt; COLOR: #333333; LINE-HEIGHT: 150%">.</SPAN><SPAN 
style="FONT-SIZE: 10.5pt; COLOR: #333333; LINE-HEIGHT: 150%">1</SPAN><SPAN 
style="FONT-SIZE: 10.5pt; COLOR: #333333; LINE-HEIGHT: 150%">接口的计算机平台上,采用上述不间断采集改进</SPAN><SPAN 
style="FONT-SIZE: 10.5pt; COLOR: #333333; LINE-HEIGHT: 150%">V4L</SPAN><SPAN 
style="FONT-SIZE: 10.5pt; COLOR: #333333; LINE-HEIGHT: 150%">标准,配合双</SPAN><SPAN 
style="FONT-SIZE: 10.5pt; COLOR: #333333; LINE-HEIGHT: 150%">URB</SPAN><SPAN 
style="FONT-SIZE: 10.5pt; COLOR: #333333; LINE-HEIGHT: 150%">、双帧缓冲等方法后,帧速提高两倍有余,有效数据传输速度达</SPAN><SPAN 
style="FONT-SIZE: 10.5pt; COLOR: #333333; LINE-HEIGHT: 150%">960KB</SPAN><SPAN 
style="FONT-SIZE: 10.5pt; COLOR: #333333; LINE-HEIGHT: 150%">/</SPAN><SPAN 
style="FONT-SIZE: 10.5pt; COLOR: #333333; LINE-HEIGHT: 150%">s</SPAN><SPAN 
style="FONT-SIZE: 10.5pt; COLOR: #333333; LINE-HEIGHT: 150%">,接近等时传输方式下</SPAN><SPAN 
style="FONT-SIZE: 10.5pt; COLOR: #333333; LINE-HEIGHT: 150%">USB</SPAN><SPAN 
style="FONT-SIZE: 10.5pt; COLOR: #333333; LINE-HEIGHT: 150%">总线的带宽极限。 <A 
href="http://blog.csdn.net/fengyv/archive/2006/04/28/695616.aspx">推荐阅读:《rh9实现视频的捕获》,该文档中有详细的代码</A></SPAN><SPAN 
style="FONT-SIZE: 10.5pt; COLOR: #333333; LINE-HEIGHT: 150%"></SPAN><SPAN 
style="FONT-SIZE: 10.5pt; COLOR: #333333; LINE-HEIGHT: 150%">
<DIV style="TEXT-INDENT: 22.4pt; LINE-HEIGHT: 150%">
<TABLE height=90 cellSpacing=0 cellPadding=0 width=728 align=center summary="" 
border=0>
  <TBODY>
  <TR>
    <TD>&nbsp;
      <SCRIPT type=text/javascript><!--google_ad_client = "pub-2299987709779770";google_ad_width = 728;google_ad_height = 90;google_ad_format = "728x90_as";google_ad_type = "text_image";google_ad_channel ="";google_color_border = "FFFFFF";google_color_bg = "FFFFFF";google_color_link = "0000ff";google_color_url = "008000";google_color_text = "000000";//--></SCRIPT>

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -