マウスボタンの反応速度を調べよう!



Setup
みなさん、マウスは何をお使いですか?
BTOでついてきたマウス?それとも高性能ゲーミングマウス?

やっぱり、こだわるなら高性能ゲーミングマウスでしょう。
でも、なかなか最高のマウスって見つかりませんよね。
気づけば、いつの間にかマウスだらけになっていませんか。

What kind of mice are you using?
Some mouse that came with your computer? Or some hi-performance gaming mouse?

If you are serious about gaming mice, you probably are using a “gaming mouse”.But finding THE mouse is difficult, aint it?Doesn’t your mouse collection look something like this?
mouse collection

そんな悩みに解決の糸口を用意しよう、というのが今回のテーマです。

高性能マウスに求められる要素として重要なSPECに
「センサーの追従速度」と「ボタンの反応速度」があります。
前者は、マウスの移動に対するカーソルの移動の限界のことで
前回ろくろを使った検証方法を示しました。

そこで今回は、「ボタンの反応速度」の方を
徹底検証してみたいと思います。

Todays theme is helping you find your mouse.

Things demanded from high performance mice are A)maximum sensor speed (mouse score) and B)button latency time. The first is about finding how fast you can move your mouse and where the malfunciont speed is, and I have previously measured the sensor speed of mice using the “self made potter wheel device”.

So this time, we will thoroughly inspect the button latency time of mice.



用意する物:
フォトICダイオードS9066-111
ユニバーサル基板
トランジスタ2SC1815,2SA1015など
チップ抵抗10[kΩ]
配線材
安定化電源



Parts used
PhotoIC diode S9066-111
Stripboard(Veroboard)
Toshiba 2SC1815,2SA1015 transistors
10k ohm chip resistors
wires
stabilized power supply


用意したマウス:
IntelliMouse(Microsoft)
IntelliMouse Pro(Microsoft)
IntelliMouse Optical(Microsoft)
IntelliMouse Explorer3.0(Microsoft)
LaserMouse6000(Microsoft)
Habu(Microsoft)
SideWinder(Microsoft)
SideWinderX8(Microsoft)
Explorer Mini Mouse(Microsoft)
MX-310(Logitech)
Wheel Mouse(Logitech)
G3(Logitech)
MX-518(Logitech)
G5T(Logitech)
G3LS(Logitech)
G9(Logitech)
CopperHead(Razer)
Diamondback(Razer)
DeathAdder(Razer)
Boomslang CE 2007(Razer)
Lachesis(Razer)
Salmosa(Razer)
DRTCM01(Dharma Point)
DRTCM02(Dharma Point)
X-718BF(A4tech)
X-750F(A4tech)
XL-740K(A4tech)
8K(A4tech)
Expert Mouse(Kensington)
Expert Mouse Pro(Kensington)
Expert Mouse Optical(Kensington)
Mouse in a box(Kensington)
Optical Elite(Kensington)
FPSGUN(ZALMAN)
Misty Mamba(Raptor-gaming)
G-1000(Everglide)
S.W.A.T. gaming mouse(CyberSnipa)
Intelliscope Gaming Mouse(CyberSnipa)
TROOPER(WolfKing)
M-MEURSV(ELECOM)
M-DWURBK(ELECOM)
M-ERUP2RRD(ELECOM)
XG6(VisionTek)
Fatal1ty 1010(Creative)
Fatal1ty 2020 Laser mouse(Creativ)
IkariOptical(SteelSeries)
IkariLaser(SteelSeries)
ReaperEddge(Ideazon)
Reaper Gaming Mouse(Ideazon)
RAVEN(SilverStone)
AVATAR(NZXT)
pop'nmusic Be-Mouse(KONAMI)
1600dpi Gaming Mouse(Saitek)
GM3200(Saitek)
CYBORG(Saitek)

全55種。

Total 55 mice


フォトICダイオードは液晶ディスプレイの光を検出します。
他は一般的な部品です。

ゲーミングマウスは秋葉原で入手した一般的なものです

The photo-IC diode is used to pick up the drawing from the LCD display. Other used parts are normal products.
All tested gaming mice are normal products bought at Akaihabara.

参考:
PC用入出力装置のまとめwiki(2chPCアクション板)
PC用入出力装置のまとめwiki(2chハードウェア板)

Reference
Wiki for PC input/output devices (2ch PC action forum)
Wiki for PC input/output devices (2ch hardware forum)

Step 1
まず、測定用治具を組みます。

ボタンの反応速度は、応答速度、latencyなどと呼ばれます。
要するに、「ボタンを押したら何ミリ秒でwindowsが反応するか」です。
今回は、ボタン押しに、液晶ディスプレイと光センサーを用います。

測定治具は、
・専用ソフトウェア(Microsoft Visual C# 2008 Express Editionで作成)
・専用光センサー治具(光センサーの反応をマウスのスイッチ押下に変換します)
で構成されます

配線図は以下の通りです。


Step 1
First, we start off by making the benchmark rig.

Button reaction speed is also called as response time, latency, etc.
It’s about “the time(milliseconds) between when you press the mouse button and when Winodws responds to the action”. This time, we will use a LCD monitor and an optical diode to mesure the latency time.

The rig is made up of
Specialized program (made using Microsoft Visual C# 2008 Express Edition)
Specialized optical sensor unit (converts the sensor’s input to an mouse button action)


治具配線図
fig.1
Wiring Diagram

software
1. draw on LCD
2. detect pressing down of mouse button1
3. records time diff of 2-1
※  LCD display ← optical sensor
※      
※ sensor/converter unit → solder directly to button1 of mouse




専用ソフトウェアはこんな感じです。
専用ソフトウェア
fig.2

specialized software

画面右側を白く書き換えた瞬間にタイマーをスタートさせ、
マウスがクリックされるまでの時間を記録するソフトです。
これを各マウス1000回記録します。

画面の描画を光センサーで読み取り、ボタンの押下に変換するため、
測定時間に液晶の遅延が含まれます。
測定に使用した液晶はFlexScanL885で、応答速度20[ms]と多少遅めです。
この遅延時間を最小にするため、表示方法を工夫し、
「黒→白」ではなく、「センサー反応閾値ぎりぎりの灰色→白」
と描画しています。

また、液晶の描画タイミングはプログラムと同期をとっているので、
液晶描画までの遅延時間はほぼ一定になります
フォトICダイオードの特性はデータシート等を確認してください。


The software starts the timer exactly as the screen is drawn white and stops the timer when it detects the mouse button1 input, and records the time difference.
Each mouse is tested 1000 times.

Since the optical-sensor reads the drawing on the LCD display and changes it to an button1 input, there is always the “latency of the LCD display” added to the recorded time.
The LCD display FlexScan L885 used in the benchmark has an relatively slow response time of 20ms. In order to lower the latency of the LCD as much as possible, the software is designed to draw a gray color patch“that just doesn’t set off the sensor” to a white color patch instead of drawing a usual black patch to white patch (note: on a LCD display, gray to white draws faster than black to white)

測定風景はこんな感じです

The benchmark is done like this
測定用治具
fig.3

写真はPS2-USB変換アダプタの応答速度測定の時のものです。
ソフトの仕様や接続などが、若干異なります
実際に測定するときは、画面の一番上端にセンサーを貼り付けます


The above pic was taken while doing the PS2-USB adaptor latency benchmark test. There is a slight difference in the software design and the rig connection.
When conducting the benchmark test, the optical-sensor is sticked to the top most of the display (note: since displays write from the top of the screen to the bottom, sticking the sensor to the top reduces the “latency of the display” to a minimum.




Step 2
マウスの特性と測定データです。

結論を急ぎたい方は次のStep 3へどうぞ。

Results of the mice
For those that just want to read the conclusion, go to Step3

Microsoft製9種類
Logitech製7種類
Razer製6種類
Dharma Point製2種類
A4tech製4種類
Kensington製5種類
Steel SeriesおよびIdeazon製4種類
その他各社18種類

Microsoft mice (9 types)
Logitech mice(7 types)
Razer mice(6 types)
Dharma Point mice(2 types)
A4tech mice(4 types)
Kensington mice(5 types)
Steeel Series/Ideazon mice(4 types)
Other mice

データの読み方の一例をあげます。
Logitech製のG9をレポートレート125[Hz]に設定したlatencyデータです。

Example of reading the data
Shown below is the latency data of the G9 mouse from Logitech at a USB rate of 125Hz

G9125Hz
fig.3

横軸が遅延時間で、縦軸はその時間で応答した回数です。
測定は、各マウスについて1000回ずつ行っています。

fig.3のデータの場合、ボタンが押されてから5〜13[ms]の間に、
ほぼ均等な割合(矩形分布)で反応があることが分かります。
平均値(AVG)は8.82[ms]、標準偏差(σ)は2.34[ms]です。

偏差は、散らばり具合のことで、
±2σぐらいの範囲で、散らばっていると考えてください。

レポートレート125[Hz]の場合、
最大遅延は8[ms](=1/125[s])と考えられますから
±2σで、だいたい一致すると思います。

また、各データは特記が無い限り、
可能な限り最高のレポートレートで測定しています。
専用ドライバで設定出来る場合はそれで設定し、
OS標準ドライバを使用する場合はusbport.sysを1000[Hz]に設定しました。

G9を1000[Hz]モードにすると次のようになります

The horizontal axis shows the recorded button latency, while the vertical axis shows the amount of times recorded. Each mouse is measured 1000 times

Fig3 shows that the recorded latency was between 5 and 13 milliseconds and the data is a rectangular distribution. The avg. was 8.82ms, while the standard deviation was 2.34ms.

Deviation is about how much the data is distributed, and in this case the data is distributed plus-minus 2σ

When the USB polling rate is 125Hz, the theoretical maximum latency can be calculated as 8ms (=1/125 secs), so with a plus-minus 2σ just about right.

Also, unless otherwise noted all mice were tested with the maximum polling rate. If there is a exclusive software for the mouse it was used, and if the mouse used the Windows driver the USB polling rate (usbport.sys) was set to 1000Hz

The benchmark result of G9 @ usbport.sys 1000Hz was this


G9
fig.4
このように、レポートレートを上げると、
レポート間隔による遅延が無くなりますから、
平均反応時間が少し短くなります。

fig.4の場合、平均5.92[ms]で、σ=0.29[ms]と優秀です。
このデータは、ソフトの出力値が1[ms]単位の切り捨てですから、
実際には+0.5[ms]した6.42[ms]が予想される真の平均値になります。
後述のまとめでは、この+0.5[ms]を加味して平均を算出しています。

G9を1000[Hz]モードに設定し、
測定データ出力を1/1000[ms]刻みにした場合、以下のようになります。

As shown above, when the polling rate is raised the latency between polls are shortend and as a result the avg. latency will also be quicker.

Fig4 shows a avg time of 5.92ms and a σ of 0.29ms, which is excellent.
Since the software truncates 1ms, the actual avg time would be 6.42ms with a added +0.5ms (for the truncation). In the later mentioned summery, +0.5secs are added to the recorded data.

When the G9 is measured at 1000Hz and the output data is set to use 1/1000ms, the below graph was the result.

G91000Hz
fig.5
平均反応速度は6.4[ms]程度だと言うことが分かります。

As you can see, the avg. latency was about 6.4ms

Step 3
結論
測定データのうち、平均応答速度と偏差は以下の通りです。

Conclusion
The below graph shows the avg latency and the deviation of the recorded mice.

すべてのマウスのlatency一覧
fig.6

まずfig.6の読み方ですが、横軸に各マウス、縦軸が応答速度です。
短い方が反応速度は速く、長い方が遅くなります。

偏差は標準偏差を用い、2σの範囲がグラフ上赤い線です。
だいたいこの範囲に反応時間が散らばる、という意味です。
詳細は個別データを参照してください。

このままでは見にくいので、
○10[ms]
○16.7[ms](一般的な1フレーム=1/60[s]≒16.7[ms])
○33.3[ms](≒2フレーム)
に目安のラインを引いて反応速度順にsortしてみましょう。

In fig6, the horizontal axis shows each mouse while the vertical axis shows the latency.
Shorter graph=shorter button latency, longer graph=longer button latency.

Standard deviation was used, and the red line on the graph shows 2σ.
It means that the latency will be distributed between that area.
For full details, please view the indivisual benchmark results.

Since the graph is hard to view, we sort the results and write 3lines
10ms
16.7ms (1 frame=1/60secs=16.7ms)
33.3ms (=2 frames)

すべてのマウスのlatency一覧
fig.7

ずいぶんすっきりしました。

この測定結果は液晶の遅延などがデータに含まれますから
ラインはあくまで目安です。

では詳細を見てみましょう。

真っ先に目につくのが、IME3.0はそれほど速くないところでしょう。
MicrosoftがX8の発表によると、
「一般的なワイヤードのゲーマー向けマウスのlatencyは6〜9ms」
ということですから、
IME3.0はゲーマー向けマウスではないという位置づけなのでしょうか。

同MicrosoftのSideWinderはさすがにゲーマー向けマウスSPECですね。
そして無線の状態が良いX8はIME3.0よりも速いのです。

各社フラグシップモデルを見ると、多くは10[ms]以下の高速応答であり
このラインが一つの目安になりそうです。

IME3.0と同じラインを狙っていると思われるのがDharma Pointの2機種。
いずれも「125〜1000Hzに変更可能のレポートレート」を売りにする機種で、
データはもちろん1000Hzモードのものです。
レポートレートの速さは反応速度に一致しないというのが
よく分かる数値であり、今回の測定結果のキモでしょう。

さらに2フレーム超え(33[ms]〜)の機種もそれなりにあります。
さすがに、このあたりになると遅延を肌で感じることもあるかもしれません。

Now this is clearer.

Since the recored latency times includes latency coming from the LCD display, the lines are just for referance.

Now lets look deeper into the results.

What first catches our eye is that the IME 3.0 doesn’t have a fast reaction time. According to Microsoft’s announcement with the X8,
“the average latency for wired gaming mice is 6-9ms”
so that must mean that the IME3.0 isnt a gaming mouse by Microsoft’s standards.

Also, the Sidewinder mouse from Microsoft shows that it is indeed a gaming mouse, and that the wireless X8 is actually faster than the wired IME3.0

Looking at each manufacture’s flagship model, most show an fast reaction time of around 10ms and this time could be considered as a base line.

A mouse that seems to be aimed at the IME3.0 are the 2 Dharma Point products. Both claim a variable polling rate of 125-1000Hz, and the results were measured at 1000Hz. The results of these mice show that mouse button latency does not necessarily match the polling rate, and is the key of this benchmark report.

There were a few mice that had a latency of 2 frames(33.3ms) or more.
At this latency, you may be able to feel the button latency.


Step 4まとめ
いかがだったでしょうか。

この企画、最初は別の測定をするための治具を作っている時に
どうもうまくいかず、治具の一部として使用していた
Dharma Point製マウスの反応速度が、実は遅いのではないか?
というところから出発しました。

Dharma Point製マウスはusbport.sysの設定にかかわらず
レポートレートを1000[Hz]に設定することが出来ます。
1000[Hz]なら高速応答が望めると思っていただけに、
データを見てかなりショックでした。

前述のレポートレートの速さは反応速度に一致しない
というのが分かってしまったからです。

よく考えてみると当たり前で、極端な話
1秒間に何サンプルしようと、1秒遅れて反応すれば
反応速度は1秒です。

以前行ったPS2-USB変換アダプタの応答速度測定では、
コンバーターの特性より、usbport.sysの改造で、
かなりの高速化が望める場合がありました。

今回も主要なマウスでレポートレートの変更による影響を見ましたが
大きな差は出ませんでした。

もちろん前述の通り、
レポートレートの高速化による反応時間の高速化は多少望めますが、
マウスの場合最大8[ms]程度、平均では4[ms]にもならない
微妙な差であることが多いのです。

 では、感想、レポートまってま〜す。



This “test” started off when I was making a different rig for a different test and found the Dharma Point mouse to be suspicious. I could not retrieve the wanted results and thought the Dharma Point mouse that I was using for the rig had a slow button response rate.

The Dharma Point mouse can be set to 1000Hz regardless of the usbport.sys setting. As I was expecting the mouse to have a fast reaction time at 1000 Hz, looking at the results I was a bit shocked.

As stated earlier, I found that the button reaction time does not match the polling rate.

On deeper thought this is natual, since on extreme talk no matter how many times you poll per second, if the response itself is 1 second late the resulting latency will also be 1 second.

In the previously done PS2-USB adaptor latency test, due to the adaptor’s characteristics raising polling rate (modding the usbport.sys) sometimes resulted in an extremely faster response time.

This time with the mice, there was not that much of a raise in the results.

Of course as previously stated, modding the polling rate can improve the average latency time, but the mouse’s case, the improvent would be about 8ms max, and on average latency time be 4 ms which is a very small improvement.

文・データ:そうす
Special Thanks :英文翻訳してくださった、2chハードウェア板の優秀な技術者たち

written & experimented by sousu
Special Thanks : Translated by "2ch hardware forum member".






[ TOP ]
inserted by FC2 system