前几天,双飞燕发布了一个专门用于鼠标性能测试的软件——鼠青天,号称世界首个鼠标性能测试软件,这个软件引起了鼠标爱好者的热烈关注,但也随之引发了剧烈的争论。 争论的原因是,这个软件的测试结果有些很正常,有些却与大家的使用经验和常识严重的背道而驰。例如某论坛的一位网友,在同样的系统下,严格保证环境一致并尽量保证操作一致性的前提下,测得罗技MX518为90分,MX500为94分,IE3.0为95分,这些还都可以说比较正常,有误差存在还可以认为是系统误差或操作误差,但接下来却是MX510只有67分,IE4.0竟然只有59分!老式的罗技双光头却高达84分!
这已经不能以操作误差来解释了,如果说MX518低于MX500还可以解释为误差,那么MX510如此之低就绝不是误差所能解释。而鼠青天软件经过多个版本的修正,测试中的表现已经渐趋稳定,显然出现这种数据也不是系统误差的结果。
那么,难道说“鼠青天”真的像某些网友认为的那样,只是一个没有道理的噱头吗?我不认为是这样,双飞燕没有必要开这么一个严重的玩笑。我们还是要从“鼠青天”软件的测试原理上来分析这种问题出现的原因。
首先,我们必须明确的是,任何测试软件都不可能直接测试到鼠标DSP引擎的性能,直接测试DSP性能(即像素处理能力、CPI、扫描频率等)的软件现在没有,今后也不会有。因为在鼠标中,从DSP出来的移动数据经过了SPI-MCU引擎的一次转换后,已经和DSP原始数据毫无关系,系统唯一所能与之交换信息的只有SPI-MCU,DSP对于系统而言不过是一个黑箱。这就像系统只能对硬盘的逻辑磁头和磁道进行操作却绝不可能直接从物理上控制磁头的左右运动一样(所以大家以后也不必问是否有软件能测试鼠标的引擎性能了)。
明白了这一点,我们就很好理解“鼠青天”的工作原理了。
不知道大家是否还记得Mouserate这个流行一时的软件?这个软件一度也被当作测试鼠标的法宝,其实这个软件所测试的,不过是鼠标接口(PS2或USB)的刷新频率。而“鼠青天”在某种意义上,可以认为是这款软件的“升级产品”。
实际做一下“鼠青天”的测试操作,我们就能发现,“鼠青天”的测试流程是这样的,开启测试后,不断移动鼠标,此时软件会自动同步绘制一张振态波形图,当波形图绘制完成后,软件就会自动生成一个分数,并根据这个分数给出评价。
关键在于这张图是什么?
这张图实际就是鼠标SPI-MCU输出的数据波形图!而最终的分数,就是基于这个图得出的。
不久前,双飞燕的技术人员已经承认,“鼠青天”软件没有也不可能分析鼠标DSP的性能,它所分析的是鼠标输出的SPI-MCU数据(这正符合了我们前面所说的),结合软件的测试流程,我们可以推断出“鼠青天”的测试理论依据——对于越是性能高的鼠标,SPI输出的移动数值应该越有连贯性,从而使其绘制的图形越平滑,越接近于线形振态分布。当绘制的图形出现不平滑即非线性分布现象时,则说明鼠标移动的数值出现了跳跃,反映到系统中,就反映为丟祯或指针跳动。所以,最终软件输出的测试值,实际就是在统计这个测试图形中的非平滑部分,或者说在计算整个振态波形图的非线性误差。这应该就是“鼠青天”的工作原理。(这也就是为什么说“鼠青天”其实是一个升级了的Mouserate)
应该说,从理论上说,这个思路似乎是没有问题的。实际上,在测试中的一些数据是完全符合了理论的。例如罗技MX510和双飞燕自己新推出的的X7,二者使用了同样的DSP引擎,但后者的分数远远高于前者。这就是因为二者使用的MCU芯片完全不同,MX510的SPI输出周期为2.4ms,而X7只有1ms,这就导致后者的数据平滑度远远高于前者(实际相当于曲线图的采样频率高得多),而MX518远远高于MX510也是同样的道理,因为MX518的SPI输出为16位,而MX510只有8位(抛开工艺、功能等不谈,双飞燕X7的引擎性能的确是高于MX510的,并非双飞燕对自己的产品作了什么优化,这和对鼠标的整体评价无关)。
但是,这个软件的正确性也就到此为止了。
这是因为它在设计上没有考虑到这样两个问题——第一,SPI输出频率对于光电鼠标不是一个至关紧要的参数,实际上,当DSP引擎和IAS引擎水平相当的情况下,高SPI输出频率的产品,只在高CPI高速移动与急速反应这两种情况下占据优势,而在持续平稳移动的情况下,没有任何可见的优势可言。但反映在“鼠青天”的数据分析中,SPI输出频率几乎和DSP处理能力有同等重要的地位。这样,就会出现两款鼠标DSP性能接近而SPI性能差距巨大,在“鼠青天”中有天壤之别,在实际使用中却几乎没有区别的有趣现象。这就是因为被“鼠青天”高度重视的SPI性能在实际使用中能够发挥优势的机会太少的缘故。
其次,“鼠青天”的设计上,只考虑了使用同样DSP引擎,不同SPI引擎的情况(这种情况下测试值虽然不能说在量上很正确,但至少高低分布是正确的),却没有充分考虑使用同样SPI引擎,不同DSP引擎的情况。
实际上,当SPI引擎相同的情况下,有时反而会出现由于DSP引擎效能较高,导致一个周期内曲线平滑度下降的情况(实际相当于随着DSP效能的提升,SPI引擎对DSP输出数据的采样频率相对下降了),虽然这种情况并不是每次都会产生,但在多次采样的情况下,产生的几率很高。
这样一来,反而出现很有趣的现象——在使用同样SPI引擎的情况下,使用输出数据较少的旧引擎的鼠标反而会出现测试值上升的情况。这应该就是为什么MX500的测试性能反而高于MX510的原因所在了。
其实,我们可以概括出一个不太准确但可以参考的说法——在“鼠青天”测试中,鼠标DSP输出数据量和SPI输出数据量之比越小,“鼠青天”的测试数值就会越高。
综上所述,就目前来看,“鼠青天”在目前只能是一个“玩具测试工具”,它的测试结果在至少一半的情况下和实际情况出入太大而不具有参考意义。造成这种情况的原因,就是因为它过分重视了鼠标的SPI性能而同时无法真正测试鼠标的DSP性能(当然这也是根本做不到的)。
但这不意味着“鼠青天”就是完全没有价值的。实际上,它所秉持的设计思路是完全值得重视的,在无法直接测试DSP引擎的情况下,通过分析SPI输出数据来分析鼠标的移动性能,这是一条非常合理与正确的思路。其实,直到绘制SPI输出波形图为止,“鼠青天”都是正确的,错误就出在它对波形图的解读上。
换句话说,“鼠青天”的测试部分完全合理,但它对于波形数据的分析还不够“智能”,所考虑到的情况还太少太少,对各种波形的分数加权设计也存在问题,打分机制不够合理,这才是它的测试结果被人议论纷纷的主要原因。
如果双飞燕试图进一步完善这个软件,或者有人试图在此基础上独立开发一个真正可靠的鼠标测试软件,那么几乎无须修改“鼠青天”的测试部分,怎样正确的对波形图进行解读才是应该集中精力去解决的问题。
但不管怎么样,“鼠青天”是国内,也是世界上第一个试图真正从软件上解决鼠标性能测试的尝试,而且其基本设计思路是非常具有启发性的,这点还是应该感谢双飞燕的程序设计师们!
BTW:对于这个软件,我还有一些细节没有完全弄明白,上面所说的一些问题可能还不是很确切,这里也希望大家一起来继续研究,当然,最希望双飞燕的程序设计师们能够深入完善这个软件,使之真正成为一款具有科学性和权威性的鼠标测试软件
“鼠青天”工作原理:
在解读软件工作原理前我们必须了解一下鼠标各部件的构成及鼠标工作原理;
IAS(光学成像系统)+DSP (数字信号处理器):合称为光感传感器,根据镜头摄取图象信号转化为移动信息的处理器。以下就是常见的一些形号
型号
| 类型
| 知名代表产品
| 安捷伦S2020
| 光学
| G1, MX500 MX310
| 安捷伦A3060
| 光学
| X-708, X-710, MX510, 明基G700,
| 安捷伦A3080
| 光学
| X-718, MX518, 响尾蛇,
| 安捷伦A6010
| 激光
| G5,铜斑蛇
| 微软IntelliEye
| 光学
| IE3.0 IE4.0 IO1.1
| 非安捷伦类(台湾版)
| 光学
| 原相PAN301, 义隆OM02
|
MCU(微型控制单元):将DSP提供的移动信息转化为主机需求之数据信息的处理器。
SPI 串行外围接口标准(Serial Peripheral Interface):DSP与MCU通讯的传输界面,MCU和SPI可以合称为SPI引擎。
SPI采样时间: MCU向DSP要移动资料的固定时间间隔。
入正题:我们知道当鼠标在移动时,DSP不断的纪录鼠标的移动量,并储存在DSP的内存里,MCU每固定一段时间(也就是SPI采样时间)便会将DSP的资料读入并储存在MCU的内存里,那幺USB接口鼠标每8ms时间一到主机便会要求MCU回报总移动量并重新计数总移动量,然而现有DSP的内存只有8位 ,能够纪录的大小是+127 ~ -128,由于普通鼠标MCU每次向DSP要移动量的时间间隔太久,而间接导致DSP溢位超出了+127 ~ -128的范围,尤其是在高速移动时最会发生,或是在每8ms内MCU向DSP的读入次数不均。鼠青天就是记录光标在屏幕的移动轨迹数据以直观的波形图的方式来显示,并根据其放大波形图的平滑度, 锯齿度或丢桢数而统计其总误差量值, 评出测试鼠标的分数,分数高低来决定鼠标移动性能的滑顺与定位能力差异,真正暴露出鼠标的二大核心—DSP与MCU各自的技术能力与匹配设计能力。
在“鼠青天”软件内置的介绍中有指出,测试时出现的波形图是由USB鼠标的MCU每8ms汇报给PC主机的光标移动量组成(每根白线间隔时间为8ms)。而软件根据相同测试周期内的移动量误差值为鼠标进行打分(误差值=Σ[(移动量-平均移动量)/平均移动量])。通过此误差值得到了移动的质量,公正的给鼠标硬体系统打分,直接反映出了鼠标移动品质的差异, 锯齿不平滑造成了鼠标移动定位的不准确性。并且移动不准确性在激烈的游戏中是能被感知的。因此,MCU的性能直接影响着鼠标移动的平滑性和准确性,是鼠标非常重要的核心之一。
[ 本帖最后由 hqwww 于 2008-7-19 02:03 编辑 ] |