外设天下 - 电脑外设发烧友聚集地

123下一页
我的人缘0

[评测] 关于鼠标的DPI,扫描频率,像素处理能力 以及 USB报告率的一些知识

26 42040
楼主
跳转到指定楼层
发表于 2008-8-18 13:37 只看该作者 倒序浏览 阅读模式
首先,这个贴参考了诸多网上的资料,在这里,对这些前人们的辛苦付出表示感谢!本文会尽量以通俗点的语言来讲清楚一些事情,但是由于讲的确实是枯燥的参数上的东西,所以大家凑合着看~

一,        关于鼠标DPI,扫描频率,像素处理能力和移动速度之间的关系。
在讲这些东西之前,需要先讲一下光电鼠标的工作的基本过程,简要的说,光电鼠标的工作过程可以分为以下几步:

1,        采用发光部分(普通的二极管,RAZER的某些型号使用了不可见光,激光鼠标使用激光等)将光投射到鼠标底部CMOS光头对着的鼠标垫上,使其反射光,从而成像。
2,        反射的像经过鼠标底部的透镜(放大),被CMOS光头捕获,同时DSP(数字处理芯片),根据CMOS光头矩阵的中所捕获的前后两幅像之间的变化,经过计算,向PC反馈鼠标在X轴和Y轴方向上的移动,例如(X: +30;Y:-20 )。

关于CMOS光头矩阵,实际上是类似于下面图片里左边的这样一个格子,每一格的长度和宽度都是一个采样像素点,不同的鼠标,CMOS矩阵的大小可能不同,比如IE系列用的是22*22的CMOS矩阵,而MX系列用的是30*30的CMOS矩阵。通过前后两次光头成像的图片放在CMOS矩阵里进行比较,DSP就可以得出鼠标移动的数据,比如在下面的这个例子里,通过在矩阵里比较前后两幅图片,可以发现鼠标进行了(X:-4;Y-1)的移动。


关于鼠标的DPI,扫描频率,像素处理能力 以及 USB报告率的一些知识

当前后两幅图片的相关性太小,或者完全不同的时候(一般在高速移动鼠标时可能造成这种情况),DSP无法通过比对上下两幅图片在CMOS矩阵里的关系时,那么就无法计算鼠标的移动数据,也就出现了我们所说的丢帧(光标要么不动,要么乱动),比如在下面这个前后两幅画面中(心型的画面快速向左上方移动),DSP根据比对结果,就很难计算出实际上鼠标的移动,也就无法向PC反馈正确的数据。

关于鼠标的DPI,扫描频率,像素处理能力 以及 USB报告率的一些知识


3,        PC接到鼠标反馈的移动的数据,以及WINDOWS系统里设定的鼠标速度数据,进行计算,从而得到光标在屏幕上应移动的,并传递指令给显卡。
4,        显卡根据收到的光标移动的数据,在每一帧显示信号里调整光标的显示的位置,并输出给显示器进行显示。

首先说最简单的像素处理能力,像素处理能力就是指DSP在一秒中可以进行比对分析的像素的数量,简单算来就是用:CMOS矩阵里像素数量*扫描频率,这个概念实际上是LOGI先推的,号称每秒470万像素处理能力的MX引擎,除以CMOS矩阵30*30=900像素,得出每秒的扫描频率应该是4700000/900=5222次/秒。 同理,IE3如果计算像素处理能力的话,应该是用扫描频率6000次/秒*CMOS矩阵像素数量(22*22=484)= 290.4万像素/秒,抛却MS在DSP软件和计算方法设计上的功力要比LOGI强的因素,大家可以发现,没有必要太迷信这个像素处理能力的概念,因为IE3虽然像素处理能力比MX少了一大截,但是定位和移动都是如此出色。

那么DPI和这些东西有什么关系? 众所周之DPI(dots per inch)指的是鼠标移动一英寸中,光头可以采样多少个点的数据。比如400DPI的IE3,每英寸的鼠标移动,CMOS矩阵可以采样到400个点,由于CMOS矩阵判断移动的最小值是:1个像素,也就是说在矩阵中必须至少移动一个格子,这样DSP才能将其视作一个像素点的移动。换句话说,400DPI的鼠标最小能感应到1/400=0.0025英寸的移动,这也就是接近400DPI的鼠标的CMOS矩阵里一个格子的长度。而对于小于0.0025英寸的移动,比如像下面这个图里面的这种移动,DSP是没有反应的~   说白了,DPI就是变现CMOS矩阵和DSP配合下,标明其所能识别的最细微移动是多少的一个参数~

关于鼠标的DPI,扫描频率,像素处理能力 以及 USB报告率的一些知识

那么,如果我们想把DPI提高,就要把CMOS矩阵和DSP进行提升,假如我们能将上图中的CMOS矩阵的每一个格子的宽度都减小一半,做到下面这种程度,并同时调整DSP的话,那么上图中的这种移动就可以被识别为(X:-1;Y:+0),也就是类似下面这样:

关于鼠标的DPI,扫描频率,像素处理能力 以及 USB报告率的一些知识

这时鼠标就变成了最小可以采集到0.00125英寸的移动,这时DPI就变成了800~。  想获得越高的DPI, CMOS矩阵和DSP就需要能感应的更小的鼠标移动。 当然,精度越高的光学引擎,价格自然也越贵。

题外话:除了提升CMOS矩阵和DSP之外(这两个东西的提升比较高级,一般只有芯片厂家才能够调整,比如安捷伦自己),那么鼠标生产厂商有没有别的办法来提升DPI呢? 答案是有的,中间的机关就在透镜上。 这个逻辑就是,既然在同一个芯片上,不能把CMOS和DSP所能感应的最小移动幅度降低,那么把透镜放大倍数加倍,使像变大一倍(如下图),这时原来的0.00125英寸的移动,在CMOS镜头采样的时候,就变成了类似0.0025英寸的大小,从而可以被400DPI的鼠标识别了,这时400DPI的鼠标的CMOS和DSP,变得和800DPI的鼠标类似了。但这种方法有副作用,就是对透镜装配的精确度要求很高,如果精度不合格,那么鼠标的定位和移动的精度就会很差,同时更容易丢帧。我向来不惮以最坏的恶意来揣测某些国内厂商的做法的,对于某些和别人采用同样的芯片,但是DPI却号称比别人高出几百的产品,我是一直带有怀疑的。

关于鼠标的DPI,扫描频率,像素处理能力 以及 USB报告率的一些知识

关于鼠标最大移动速度和丢帧的关系,正如我们前文所说,当CMOS矩阵前后两个采样的图片不能够互相比对的时候,那么DSP就不能判断鼠标进行了什么样的移动,丢帧也就产生了。以向左40英寸/秒的移动速度来做个例子,一个每秒2000次采样,400DPI的鼠标,上下两次采样中鼠标向左移动了40英寸/2000=0.02英寸,对应由于这个鼠标的CMOS矩阵每个像素的宽度是0.0025英寸,也就是说,上下两次采样中,也就是说CMOS采集到的上一张像中的一个像素点,在下一张像中向左移动了8个像素,这时,以22*22的CMOS矩阵为例,上一张采样图片中曾出现的点,只剩下了(22-8)*22=308个 能出现在下一张采样的图片上,这时可以用来和上一张图片进行比对的像素数量只有308/484=64%(实际上,由于DSP在正常的计算中,并不是根据所有22*22个像素点进行比对来判断运动,而是往往仅根据中间的区域,例如16*16的区域里像素的变化来判断,因此这种情况下,可用于比对的点的比例还会更低,丢帧也就容易发生)。

而对于一个6000次/秒采样的400DPI的鼠标来说。上下两次采样中,鼠标移动了40英寸/6000=0.0067英寸,也就是说在上下两次采样中,也就是说CMOS采集到的上一张像中的一个像素点,在下一张像中向左移动了仅大约3个像素,还是以22*22的CMOS矩阵来说,这时上一张采样图片里曾出现的点,在下一张采样里还剩下了(22-3)*22=418个,这时可以用于和上一张图片比对的像素数量占到418/484=86.4%,这样DSP就越可能作出正确的判断,丢帧的可能也就越小。

通过这个计算也可以看出,当采样频率不能提高时并且CMOS矩阵数目一定的情况下,片面增加DPI(降低CMOS矩阵里每一格的宽度),反而可能更导致丢帧。因此,鼠标DPI的提升,必须与采样频率和像素处理能力同步,才能避免丢帧的问题。

[ 本帖最后由 drocee 于 2008-8-18 21:36 编辑 ]

评分

参与人数 1技术分 +10 收起 理由
红发78 + 10 精品文章

查看全部评分

0
已赞
微信分享 收藏
回复

使用道具 举报

我的人缘0
推荐
发表于 2008-8-18 13:47 只看该作者
又见精华贴,板凳后细看
我的人缘0
推荐
发表于 2008-8-18 13:38 只看该作者
。。。。。。。。。。。:k:
我的人缘0
推荐
发表于 2008-8-18 13:37 只看该作者
二,        关于USB的报告速率的问题
  首先要明确的是,对CMOS图像进行处理的工作是由鼠标DSP来完成的,而DSP反馈给系统的信息仅仅包括X,Y轴的移动数字和按键信号,这个信息的体积非常小,可能只有几十个字节就足够,而我们所知的USB的带宽:
USB 2.0标准规定了以下三种传输速率:
低速模式传输速率为1.5Mbps,多用于键盘和鼠标。
全速模式传输速率为12Mbps。
高速模式传输速率为480Mbps。
假如每一次鼠标反馈的数据字节有64bit,那么在125HZ的报告率下,也就是说鼠标每秒钟向PC报告125次,这个带宽占用也仅有8Kbps,即使在1000HZ的报告率下,带宽占用也仅有64Kbps, 即使是最低的USB1.0,带宽也完全够用了,所以USB的带宽是完全能够支持高的报告率的.

从鼠标芯片本身来讲,越高的报告率代表了越强的处理能力,就好像大家体育课报数的时候,一个队伍可以一秒报10个,另一个队伍可以一秒报100个,那第二支队伍的能力明显要高于第一支队伍。从这一点上来看,高的报告率的芯片,也是对厂家技术能力的一个体现,但是这种体现对玩家来说真的有用吗?

这个问题需要回到我们上文讲到的从鼠标移动到光标移动的全过程来说起,这个过程里,对于报告速率的瓶颈在哪里呢?首先肯定不是在鼠标芯片上,因为很多芯片已经可以实现500-1000次/秒的报告速率了,也不会在CPU的处理能力和通信带宽上,这个瓶颈其实是在----显卡输出和显示器刷新率 的环节上。

众所周之,目前一般的游戏和显示器,大家在使用的时候,一般刷新率都在100上下,比如CS,也就是说,显卡每秒输出100帧图像(这一般也是常用分辨率下,显示器能支持的刷新率水平),在这100帧图像上,每帧上面都带有一个光标的坐标。也就是说,对于使用者来说,1秒钟内只能看到100帧的光标位置。
假如你的鼠标每秒钟向PC报告1000次,而显卡却只会挑选其中的100次,来据此调整光标的移动并显示出来,那剩余的900次都是被忽略掉的,这种情况下,1000HZ的报告率并不比125HZ的报告率有什么优势,也就是说,报告率的提高对你使用并没有带来什么质的提升(除却给你带来的心理作用 ^_^)。

只有当显卡的输出和显示器的频率提高了(比如显示器刷新在150HZ的时候),这时125HZ的报告率才算是不够用了,而200HZ的报告率也算有了用武之地~ 但是,又有多少玩家是在这么高的刷新率下来使用的呢?又有多少显示设备,是具有可以支持这么高刷新率的显示带宽的呢? 所以,就目前情况来看,USB报告率,除了彰显厂家实力之外,体现技术竞争之外,能真正起到作用的场合,还是非常的少的!

以上~

[ 本帖最后由 drocee 于 2008-8-18 13:48 编辑 ]
我的人缘0
5
发表于 2008-8-18 13:50 只看该作者
测试
鼠标没有掉针但是快速移动的时候鼠标速度比慢慢拉要慢点。。
这是怎么回事?去了加速的
我的人缘0
6
发表于 2008-8-18 13:55 只看该作者
原帖由 cshantian 于 2008-8-18 13:50 发表
鼠标没有掉针但是快速移动的时候鼠标速度比慢慢拉要慢点。。
这是怎么回事?去了加速的



从理论上讲不可能出现这种情况,也就是说系统不会允许负加速的出现,你确定没有操作误差或心理因素的影响?
如果能排除这些问题呢,只能说还是鼠标芯片在处理时出现了问题~
我的人缘0
7
发表于 2008-8-18 13:57 只看该作者
原帖由 drocee 于 2008-8-18 13:55 发表



从理论上讲不可能出现这种情况,也就是说系统不会允许负加速的出现,你确定没有操作误差或心理因素的影响?
如果能排除这些问题呢,只能说还是鼠标芯片在处理时出现了问题~

排除操作和心理。。。脚贴贴的越厚这现象越明显
我的人缘0
8
发表于 2008-8-18 13:57 只看该作者
原创文章一定要顶。。。楼主辛苦了、、
我的人缘0
9
发表于 2008-8-18 13:58 只看该作者
还有那16bit带宽是不是500*16bit=8000bit/s?
我的人缘0
10
发表于 2008-8-18 15:22 只看该作者
测试
:lg: :lg:
123下一页
高级模式
B Color Image Link Quote Code Smilies |上传

本版积分规则