鼠标光学引擎详解

用这么高的DPI 你需要吗--鼠标光学引擎详解
光电鼠标的工作原理是:在光电鼠标内部有一个发光二极管,通过该发光二极管发出的光线,照亮光电鼠标底部表面(这就是为什么鼠标底部总会发光的原因);然后将光电鼠标底部表面反射回的一部分光线,经过一组光学透镜,传输到一个光感应器件(微成像器)内成像。这样,当光电鼠标移动时,其移动轨迹便会被记录为一组高速拍摄的连贯图像,最后利用光电鼠标内部的一块专用图像分析芯片(DSP,即数字微处理器)对移动轨迹上摄取的一系列图像进行分析处理,通过对这些图像上特征点位置的变化进行分析,来判断鼠标的移动方向和移动距离,从而完成光标的定位。


二、什么是鼠标的CPI(DPI)


分辨率指标,它一般是采用DPI(Dots Per Inch,每英寸采样点数)指标来衡量,该参数最早用于衡量扫描仪和打印机的指标参数,是指每平方英寸上所印刷的网点数(Dot Per Inch)。不过,实际上,鼠标分辨率的正确单位应该是CPI(Count Per Inch,每英寸测量次数)。CPI所指的是鼠标在桌面上每移动1英寸距离鼠标所产生的脉冲数,脉冲数越多,鼠标的灵敏度也越高。CPI(DPI)是一个表示精度的硬件指标,在光电鼠标中,这个量表示的是为了能被人观察到的屏幕上的变化(这里所说的能被人观察到的屏幕上的变化,可以是光标移动1个(或N个)像素,也可以是在FPS游戏里转身10度,这个变化可以由鼠标驱动或软件(游戏)的设定来改变),鼠标所必须移动的最小距离。而鼠标必须移动的最小的距离就是CPI的倒数。
假设某鼠标是200CPI,那么这个鼠标必须移动1/200英寸,屏幕上光标才移动1个像素,而另一个800CPI的鼠标,只须移动1/800英寸,光标就能移动1个像素。同理,当光标在屏幕上移动同样长的距离,分辨率高的鼠标在桌面上移动的距离较短,给人感觉就是"鼠标比较快"。所以,鼠标分辨率第一层意义上的差别就是指鼠标对微小移动的响应能力的差别,这是一个精度意义上的差别。然而,对于鼠标而言,CPI是一个动态的移动概念,而扫描仪等设备的DPI则是一个静态的概念,所以将CPI和DPI当成同一个概念在严格意义上来讲是不严谨的。
CPI(DPI)的值数越高,在游戏中的表现有更加快的移动速度,这在FPS类型游戏中表现尤为显著,CPI高可以说明鼠标的加速性能高,在游戏中的反映就越灵活,其移动也就越细腻,而这些正是玩家所需要的。然而对于作图等用途来说,高CPI鼠标是没有什么意义的,因为它们所要的是不考虑加速性前提下逻辑定位的精确与稳定,所以CPI值对于它们来说没有价值(甚

至还是在帮倒忙),对于这些用途,更应考虑的是鼠标设计造成的稳定性影响,正因如此,CPI值很低的轨迹球才会成为工业作图的主要工具。


三、鼠标的采样频率与像素处理能力


采样频率,它所指的是感应器每秒钟采集/分析图像的能力,单位为"帧/秒",它是光学鼠标独有的性能指标。鼠标的CPI越高,每次拍摄的照片中的点数量越多。但是,如果移动速度相同且CPI相同,采样频率越高的鼠标,在单位时间内所获得的像素点数也就越多,这样在屏幕反映出来的效果就是:在同样移动距离和时间内,鼠标指针出现的次数增加了,给人的感觉就是"鼠标稳多了"。这正是作图工作所需要的。
明白了采样率这一概念后,接着我们来回答一个比较常见的疑问:为什么快速移动鼠标会产生丢帧?早期的鼠标光学引擎的采样率一般只有1500帧/秒,这意味着它在一秒钟内只能采集和处理1500张图像,此时它所能追踪到鼠标的最快移动速度约为14英寸/秒,倘若鼠标的移动速度超过这个范围,便会出现追踪失败,光标暂时消失的现象,也就是通常所说的丢帧。出现这种情况是因为当鼠标高速移动时出现了CMOS接连两次拍摄的图像中没有任何的共同特征的采样点,没有共同的采样点当然也就无从比较移动的方向,就好比一个人在长途汽车上睡着了,醒来时就开始难以辨别方向的道理是一样。这样DSP当然无法正常处理采样信号,从而产生大量了错误信号,从而导致采样图片丢失数个点,进而转换为桌面移动时的丢帧。


 不过有人可能会这样问:"罗技的MX系列鼠标采样频率远不及微软的鼠标,但为什么在同等条件设置下罗技鼠标的移动速度并不比微软的差呢?"对此,我们不得不提到跟鼠标采样频率相关的参数--像素处理能力,它等于CMOS的尺寸与采样频率的乘积,单位是像素/秒,它所描述的实际上是图像分析芯片(DSP )的计算能力。比如罗技极光云貂(MX500)的像素处理能力是470万像素/秒。而微软的光学银光鲨4.0(IE4.0)有6000帧/秒的采样频率和22×22的CMOS尺寸,我们很容易算出微软这款鼠标的像素处理能力=22×22×6000=290万像素/秒。罗技的MX引擎就是依靠比微软更大的CMOS图片采样尺寸而取得了同样的效果。所以说,在不同的CMOS的尺寸下谈采样频率的区别其实是不科学的。


刚才我们说过分辨率是一个精度意义上的概念,那么采样频率与像素处理能力就是一个广度意义上概念,我们可以将鼠标比作一把尺子,那么分辨率就是对应了尺子的刻度精度,而采样频率与像素处理能力则对应的是尺子的长短,就是所能测量的范围。当然,鼠标的测量

范围就是指鼠标垫的粗糙的范围,也就是说鼠标对环境的存在一个感知的范围,太粗或太细,它都是不能感应的。
小知识:罗技的MX引擎的CMOS尺寸更大,为何对鼠标垫的适应程度上却不如微软的IntelliEye引擎了?
光电鼠标对鼠标垫的适应性取决于它能够在一个很小的单位面积的采样表面上能够得到多少有效特征点,这个"很小的单位面积"由鼠标的CPI和CMOS芯片尺寸共同决定。过粗或过细腻的鼠标垫,都会造成光电鼠标对其适应性下降,具体表现为在过粗的鼠标垫上,鼠标会"丢帧",而在过细腻的鼠标垫上,鼠标会"迟钝",也就是它对于鼠标垫表面的适应性要更差了。更高的鼠标分辨率能够提升鼠标有效的移动速度,而采样频率的提高则让鼠标可以在更多的介质上使用,所以,只要是专业鼠标都会搭配一个专门的鼠标垫,其实就是这个道理。


四、鼠标的驱动有啥用
对于大多数人来说,一想到鼠标驱动,可能就会想到罗技或微软驱动中对诸多按键的定义功能。这的确是鼠标驱动的一个重要功能,但却并不是鼠标驱动的主要功能,更不是鼠标驱动"强大"与否的关键所在。
驱动的核心功能在于对鼠标传来的位移信号的换算与处理,前面我们说过,在没有驱动影响的理想状态下,鼠标每移动1英寸的距离,鼠标指针在屏幕上移动的像素点数应该与鼠标的CPI值相当。但在实际上,当然不可能是这样,在现实中一般是多个现实的物理点数才对应一个像素移动。这样就存在一个鼠标信号的换算问题,不同的鼠标其CPI规格不同,它的接口采样频率也不一样,那么如何使驱动能够自动识别各种鼠标的性能指标,同时将其最优化,针对不同的鼠标,如何确定其信号误码的允许范围,减小误码的影响而又不影响正常使用的灵敏度,这就是驱动的任务。而能否使驱动作到对各种不同鼠标的最优化,这就是鼠标厂商的驱动编写水平和产品设计经验的表现了。


 当然,驱动的任务还有诸如各种按键的定义、加速度的处理等问题,但这些相对于移动信号的处理与分析来说只是小问题,在这一方面的程序编制并不存在功能上的技术困难,主要的问题在于如何作到尽量丰富功能的同时减小资源的占用,罗技、微软等公司在这一点上就比其他厂商有明显的优势。

通过这篇文章我们知道影响鼠标性能的参数有很多,单独谈某个参数是没太多意义的,如果厂商推广其产品时刻意强调某参数的重要性是不太厚道的,关键在于你是否真的需要,而且现在鼠标性能相差已经不多,这个时候人体工程学和使用舒适度就显得尤为重要了。

相关文档
最新文档