光学鼠标的光学传感器就像一个摄像机,它连续的高速的对定位平面进行拍照(或者说录像)。这种拍照是在一个固定频率上的(有人叫它刷新率,有人叫它扫描频率,都是一样,这里就叫它扫描频率了),并且每帧画面有个尺寸、分辨率(即光学传感器的CMOS晶阵有效像素数)。然后光学鼠标的处理核心DSP同对对每帧画面的差异的对比,识别计算出移动的方向和每帧的位移(也就是速度),然后再把处理过的信号通过usb接口传给计算机。再由驱动程序对这些信号进行加工,反映在屏幕里鼠标指针的移动上。 扫描频率从一定层面上决定了传感器的捕捉快速移动的能力,普通的光学鼠标的1000次/秒至2000次/秒的频率会让玩家因为“丢帧”而憋气。 但是扫面频率不是全部,要与上面说到的捕捉到的画面的面积和分辨率共同作用。因此,反映图像处理能力用“像素/秒”较之刷新率更为科学合理,而最大速度、加速度则是由此衍生的指标。 请允许我引用一些技术上的资料来说清楚哪些硬件因素决定捕捉能力: a.透镜的光学放大倍率:决定了入射的可侦测面积与细节。光学传感器首先将移动表面的图像进行光学放大,然后投射到CMOS晶阵上形成帧。在CMOS的面积一定的情况下,若光学放大倍率较大则CMOS获得的图像细节较多,并可提高图像的分辨率,但与此同时,实际的捕捉面积则会缩小,若移动速度过大则会造成丢帧,此时可以通过提高刷新率得以补偿;反之若光学放大倍率较小则有利于提高捕捉能力但不利于分辨率的提高,此时也可通过CMOS的分辨率(即像素数)得以补偿。 b.CMOS晶阵像素数:决定了经过放大后光学引擎实际成像的面积与细节。
像素数=CMOS的面积*密度(或分辨率),由二者共同决定,但我想CMOS的面积会有一定限制,因此主要的改进方向在于分辨率(可用n*n矩阵表示)。在光学放大倍率一定的情况下,提高CMOS的像素数可获得更大面积的图像(增大 CMOS面积)、或者更丰富的细节(提高CMOS晶阵密度)、或者二者兼而有之,从而提高捕捉能力,另外若通过提高分辨率来提高像素数则可提高移动精度(CPI);反之,若因CMOS面积过小导致的性能缺陷则需提高刷新率进行补偿,而若分辨率过低则会损失图像的细节、并降低CPI。 c.刷新率(扫描频率):决定了图像的连贯性。不多说了,刷新率对应着光学传感器的帧速率,很显然其越高则在一定的时隙内获得的信息将越充分、图像越连贯,帧之间的对比也更有效和准确,从而鼠标的反应将更加快捷、准确和稳健(不易受到干扰);若扫描频率较低则需提高图像的对应面积(降低光学放大倍率、增大CMOS面积)或一定程度地改善成像的细节(提高CMOS密度)加以补偿。 上面得好像太过繁琐,希望下面这个简单的表格能表达一定的意思: 提高捕捉能力 提高分辨率 透镜的光学放大倍率 ↓(很大程度) ↑ CMOS晶阵象素数(指面积) ↑ - CMOS晶阵象素数(指分辨率) ↑(一定程度) ↑ 扫描频率 ↑ - 然后还得说说DPI和CPI的问题。 通常用来形容鼠标的“DPI”不同于打印机扫描仪的dpi概念,鼠标的dpi的意思是鼠标走过一英寸时,所能提供的坐标的个数。 Agilent一直主张使用“CPI (Counts Per Inch)”来取代DPI概念。也就是说现在用来形容鼠标DPI和CPI其实是一个意思。 不同的CPI的时候,如果在windows里的敏感度设置相同,则CPI高的移动快。当通过修改敏感度使得实际移动速度相同时,CPI高的移动精度高。当然,这都是理想状况,实际在FPS游戏中,400CPI已经完全可以满足需要了。但是像星际,400cpi就不见得符合标准了。 再说一下接口的采样频率。鼠标的位移信息被编码成信号之后,要通过一定的接口频率发给PC。 对于USB接口,它的采样频率通常都是125Hz(也有修改的方法),而每次发送可以发送出127种不同的位移信号。也就是说,USB鼠标,每秒可以传送127X125个鼠标移动信号。 COM口的频率是40Hz,那么每秒可以传送127x40个移动信号。 PS/2是一个比较特殊的端口,可以通过更改优先级来改变它的采样频率。一般PS/2端口的采样频率是40Hz,但在通过软件方法使其独占资源后,可以把采样频率“超频”到200Hz,可是在实际使用中效果并不好。 而且,在实践中发现,提高采样频率会导致移动速度下降,也就是说,精度是没变的。但是,由于USB接口的采样频率对顶级鼠标有一点点制约,所以提高usb的采样频率还是有一些极不明显的收益的。
说了这么多,其实意思很简单:评价鼠标捕捉移动的性能好坏的标准是像素处理能力,即多少象素/秒,以及DPI/CPI指标。 像素处理能力=每帧像素数×扫描频率。它可以衍生出加速度和速度这些性能指标
(出处:http://www.sheup.com)